Your personal media collection. Always accessible, entirely yours.
English |
Russian
Listify is a sleek, modern media tracker designed for those who want to keep their collections organized without the clutter of social features or ads. Whether you're logging games, movies, books, or anything in between, Listify provides an intuitive and fast UI to manage your personal library.
Built from the ground up as the successor to Nightlist, it leverages Vue 3, Fastify, and PostgreSQL to deliver a fast, secure, and highly customizable experience.
- Create & Manage Lists — Organize games, films, TV shows, anime, manga, books, and music.
- Share Your Collections — Personalized public profiles for your library.
- Intuitive UI — Lightweight design powered by Naive UI.
- Data Sovereignty — Full export/import capabilities, no lock-in.
- Privacy Focused — No ads, no trackers, and no third-party data sharing.
- High Performance — Lightning fast, optimized Vue 3 / Vite and a lightweight Fastify backend.
- Open-source — Inspect, fork, or self-host the entire project.
- Multi-Language Support — EN, DE, ES, FR, PL, RO, RU, UK.
| Component | Technology | Description |
|---|---|---|
| Frontend | Vue 3 | Composition API & Script Setup |
| Backend | Fastify | High-performance Node.js framework |
| Database | PostgreSQL | Relational database via Drizzle ORM |
| Styling | Naive UI | Curated component library & design system |
| State | Pinia | Modern Vue store management |
| Build | Vite | Next-generation frontend tooling |
Listify integrates with several high-quality external APIs to provide instant autocompletion and rich metadata for your collections:
- RAWG API: The primary source for the Games category.
- TMDB API: Powers discovery for Films and TV Shows.
- Jikan API: A free, open-source API for the MyAnimeList DB, used for Anime and Manga.
- iTunes API: Provides a reliable catalog for Books and Music.
Important
Some providers (RAWG, TMDB) require an API key. If you're hosting your own application ensure these are correctly configured in your api/.env file to enable autocompletion features.
- Node.js >= 20.0.0
- npm >= 9.0.0
- PostgreSQL (running locally or via Docker)
git clone https://github.com/nightrunner91/listify.git
cd listify
npm install
cd api && npm install && cd ..Create a .env file in the api/ directory:
cp api/.env.example api/.envEdit api/.env with your database credentials and secret keys.
cd api
npm run db:generate
npm run db:migrateFrontend:
npm run devBackend:
cd api
npm run dev
npm run db:studio.
├── api/ # Backend (Node.js + Fastify)
│ ├── src/
│ │ ├── db/ # Database connection & Drizzle schemas
│ │ ├── routes/ # API endpoints (Auth, Records, Lists)
│ │ ├── plugins/ # Fastify plugins (i18n, Rate limit, etc.)
│ │ ├── middleware/ # Custom Fastify hooks
│ │ ├── services/ # Business logic layer
│ │ └── app.js # Fastify application setup
│ └── drizzle/ # SQL migration files
│
├── src/ # Frontend (Vue 3 + Vite)
│ ├── api/ # API client configuration
│ ├── components/ # Reusable UI components
│ ├── features/ # Feature-based components & logic
│ ├── i18n/ # Localization files
│ ├── router/ # Vue Router configuration
│ ├── stores/ # Pinia state management
│ ├── views/ # Main application pages
│ └── theme.config.js # Naive UI theme overrides
├── public/ # Static assets & favicon
└── package.json # Root scripts & dependencies
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built with ❤ by nightrunner91
