Listify
June 10, 2026 · View on GitHub
Ваша личная коллекция медиа. Всегда доступна, полностью ваша.
English |
Русский
Что это такое?
Listify — это стильный, современный трекер медиа, созданный для тех, кто хочет держать свои коллекции в порядке без лишнего социального шума и рекламы. Независимо от того, ведете ли вы учет игр, фильмов, книг или чего-то еще, Listify предоставляет простой и удобный интерфейс для управления вашей личной библиотекой.
Разработанный с нуля как преемник Nightlist, он использует Vue 3, Fastify и PostgreSQL для обеспечения быстрого, безопасного и легко настраиваемого опыта.
Основные особенности
- Создавайте списки и управляйте ими — организуйте игры, фильмы, сериалы, аниме, мангу, книги и музыку.
- Делитесь своими коллекциями — персональные публичные профили для вашей библиотеки.
- Интуитивно понятный интерфейс — легкий дизайн на базе Naive UI.
- Сохранность данных — полная возможность экспорта и импорта, никакой привязки к платформе.
- Приватность — никакой рекламы, трекеров или передачи данных третьим лицам.
- Высокая производительность — невероятно быстрый, оптимизированный Vue 3 / Vite и легкий бэкенд на Fastify.
- Открытый исходный код — изучайте, создавайте форки или хостите проект самостоятельно.
- Многоязычная поддержка — EN, DE, ES, FR, PL, RO, RU, UK.
Технологический стек
| Компонент | Технология | Описание |
|---|---|---|
| Frontend | Vue 3 | Composition API и Script Setup |
| Backend | Fastify | Высокопроизводительный фреймворк для Node.js |
| Database | PostgreSQL | Реляционная база данных через Drizzle ORM |
| Styling | Naive UI | Кураторская библиотека компонентов и дизайн-система |
| State | Pinia | Современное управление состоянием для Vue |
| Build | Vite | Инструментарий для фронтенда следующего поколения |
Внешние источники данных
Listify интегрируется с несколькими высококачественными внешними API для обеспечения мгновенного автодополнения и получения богатых метаданных для ваших коллекций:
- RAWG API: основной источник для категории Игры.
- TMDB API: обеспечивает поиск для Фильмов и Сериалов.
- Jikan API: бесплатный open-source API для БД MyAnimeList, используется для Аниме и Манги.
- iTunes API: предоставляет надежный каталог для Книг и Музыки.
Important
Некоторые провайдеры (RAWG, TMDB) требуют API-ключ. Если вы хостите приложение самостоятельно, убедитесь, что они правильно настроены в вашем файле api/.env для работы функций автодополнения.
С чего начать
Требования
- Node.js >= 20.0.0
- npm >= 9.0.0
- PostgreSQL (запущенный локально или через Docker)
1. Клонирование и установка
git clone https://github.com/nightrunner91/listify.git
cd listify
npm install
cd api && npm install && cd ..
2. Настройка окружения
Создайте файл .env в директории api/:
cp api/.env.example api/.env
Отредактируйте api/.env, указав учетные данные вашей базы данных и секретные ключи.
3. Миграция базы данных
cd api
npm run db:generate
npm run db:migrate
4. Запуск серверов разработки
Фронтенд:
npm run dev
Бэкенд:
cd api
npm run dev
npm run db:studio
Структура проекта
.
├── api/ # Бэкенд (Node.js + Fastify)
│ ├── src/
│ │ ├── db/ # Соединение с БД и схемы Drizzle
│ │ ├── routes/ # API эндпоинты (Auth, Records, Lists)
│ │ ├── plugins/ # Плагины Fastify (i18n, Rate limit и др.)
│ │ ├── middleware/ # Кастомные хуки Fastify
│ │ ├── services/ # Слой бизнес-логики
│ │ └── app.js # Настройка приложения Fastify
│ └── drizzle/ # Файлы миграций SQL
│
├── src/ # Фронтенд (Vue 3 + Vite)
│ ├── api/ # Конфигурация API-клиента
│ ├── components/ # Переиспользуемые UI-компоненты
│ ├── features/ # Компоненты и логика на основе фич
│ ├── i18n/ # Файлы локализации
│ ├── router/ # Конфигурация Vue Router
│ ├── stores/ # Управление состоянием Pinia
│ ├── views/ # Основные страницы приложения
│ └── theme.config.js # Переопределения темы Naive UI
├── public/ # Статические ресурсы и фавикон
└── package.json # Корневые скрипты и зависимости
Участие в разработке
Вклад в проект — это то, что делает сообщество open-source таким удивительным местом для обучения, вдохновения и творчества. Любой ваш вклад очень ценится.
- Сделайте форк проекта
- Создайте свою ветку фичи (
git checkout -b feature/AmazingFeature) - Зафиксируйте свои изменения (
git commit -m 'Add some AmazingFeature') - Отправьте изменения в ветку (
git push origin feature/AmazingFeature) - Откройте Pull Request
Лицензия
Распространяется под лицензией GNU Affero General Public License v3.0. Смотрите LICENSE для получения дополнительной информации.
Сделано c ❤ nightrunner91