All your media. One collection.
Voluptek is an invite-only social media platform for tracking, organizing, and sharing media across video games, books, music, movies, and TV shows.
The goal of the project is simple: bring the experience of rating, collecting, and discussing media into one connected place instead of scattering it across multiple specialized platforms.
Most media platforms focus on only one category. You might track books in one place, music in another, games somewhere else, and movies on yet another site.
Voluptek is built to solve that fragmentation by giving users a single app where they can:
- discover media from multiple trusted databases
- build personal collections and lists
- rate and comment on items
- keep track of what they want to watch, read, listen to, or play
- connect with other users around shared tastes
Voluptek is currently in Alpha 1.
At this stage, the app includes:
- invite-only onboarding
- registration request flow
- admin approval flow
- email-based account completion
- Firebase authentication
- media search across multiple external databases
- dedicated detail pages for supported media types
This alpha focuses on laying down the core architecture before the more social and community-driven features are added.
- Firebase integration
- Authentication and account creation flow
- Invite-based registration
- Search across external databases
- Detail pages for media items
- React + TypeScript SPA architecture
- Tailwind-based UI
- Bilingual groundwork with i18n support
- rating system
- comments on items
- activity feed
- media collections
- custom list system
- editable user profiles
- password reset and authentication improvements
- user-submitted or translated descriptions
- user-submitted media entries
Voluptek currently relies on four main databases:
- IGDB for video games
- Discogs for music
- Open Library for books
- TMDB for movies and TV series
These services provide the metadata and media details that power the explore and detail pages.
- Vite 8
- React
- TypeScript
- Tailwind CSS
- React Router
- react-i18next
- Firebase
- Authentication
- Firestore
- Cloud Functions
- Hosting
- Nodemailer for invite emails
- external media APIs and databases
- Tailwind via the PostCSS workaround for Vite 8 compatibility
Voluptek is split into two main parts:
The frontend is a Vite + React single-page app responsible for:
- routing
- internationalized UI
- authentication state
- explore/search experience
- media detail pages
- account-related pages
Firebase handles the backend workflows, including:
- authentication
- Cloud Functions
- registration request approval
- invite token generation
- email sending
- external database proxy calls
- Firestore persistence
This project uses a frontend app at the repository root and Firebase Functions in a separate
functions/workspace.
git clone <your-repo-url>
cd voluptekAt the root:
npm installIn the functions directory:
cd functions
npm install
cd ..Create the environment files required by the frontend and Firebase Functions.
You will need configuration for things such as:
- Firebase client config
- Firebase project selection
- external API credentials
- app base URL
- admin email allowlist
- SMTP credentials for invite emails
Typical backend values include:
APP_BASE_URLADMIN_EMAILSSMTP_HOSTSMTP_PORTSMTP_USERSMTP_PASSMAIL_FROMINVITE_TTL_HOURS
Use your local or deployed app URL for APP_BASE_URL depending on the environment you are running.
npm run devfirebase emulators:startOr, for functions only:
cd functions
npm run servevoluptek/
├── src/ # React app source
│ ├── components/ # Reusable UI components
│ ├── pages/ # Route-level pages
│ ├── lib/ # API helpers, Firebase helpers, utilities
│ ├── i18n/ # Translation setup and locale files
│ └── ...
├── functions/ # Firebase Cloud Functions
│ ├── src/
│ │ ├── registration.ts
│ │ ├── externalDb.ts
│ │ └── index.ts
│ └── ...
├── public/ # Static assets
└── ...
Voluptek currently uses an invite-only onboarding system.
The flow works like this:
- A user submits a registration request.
- An admin reviews the request.
- If approved, a one-time invite link is emailed to the user.
- The user completes account creation using that link.
- A Firebase Auth user and profile document are created.
This approach keeps the early alpha controlled while the platform is still being actively built and tested.
One of the biggest technical changes in the project was migrating from Astro to a Vite 8 SPA.
The original version ran into friction with Firebase hosting and database-driven pages. Moving to Vite 8 made the app a better fit for dynamic routing, authentication, and client-side interaction, even though it introduced extra migration work around translations, routing, and page conversion.
Because Tailwind does not yet fully support the latest Vite 8 workflow in the same way as older setups, the project currently uses the PostCSS Tailwind setup as a workaround.
- user ratings
- comment threads
- activity feed
- collection pages
- custom list builder
- richer profiles
- account settings
- submission and moderation tools
- multilingual description improvements
- broader social features
Voluptek is not just a database browser.
It is meant to become a place where people can celebrate the stories, sounds, and worlds that bring them joy, while keeping their media life organized in one open, connected platform.
Built by Gab Savard.
This project is currently under active development. Add a license here when you are ready to define reuse terms.