Listify

June 10, 2026 · View on GitHub

Ваша личная коллекция медиа. Всегда доступна, полностью ваша.

Listify Preview

English | Русский

Версия Лицензия Версия Node Версия Vue Fastify PostgreSQL Drizzle ORM


Что это такое?

Listify — это стильный, современный трекер медиа, созданный для тех, кто хочет держать свои коллекции в порядке без лишнего социального шума и рекламы. Независимо от того, ведете ли вы учет игр, фильмов, книг или чего-то еще, Listify предоставляет простой и удобный интерфейс для управления вашей личной библиотекой.

Разработанный с нуля как преемник Nightlist, он использует Vue 3, Fastify и PostgreSQL для обеспечения быстрого, безопасного и легко настраиваемого опыта.

Основные особенности

  • Создавайте списки и управляйте ими — организуйте игры, фильмы, сериалы, аниме, мангу, книги и музыку.
  • Делитесь своими коллекциями — персональные публичные профили для вашей библиотеки.
  • Интуитивно понятный интерфейс — легкий дизайн на базе Naive UI.
  • Сохранность данных — полная возможность экспорта и импорта, никакой привязки к платформе.
  • Приватность — никакой рекламы, трекеров или передачи данных третьим лицам.
  • Высокая производительность — невероятно быстрый, оптимизированный Vue 3 / Vite и легкий бэкенд на Fastify.
  • Открытый исходный код — изучайте, создавайте форки или хостите проект самостоятельно.
  • Многоязычная поддержка — EN, DE, ES, FR, PL, RO, RU, UK.

Технологический стек

КомпонентТехнологияОписание
FrontendVue 3Composition API и Script Setup
BackendFastifyВысокопроизводительный фреймворк для Node.js
DatabasePostgreSQLРеляционная база данных через Drizzle ORM
StylingNaive UIКураторская библиотека компонентов и дизайн-система
StatePiniaСовременное управление состоянием для Vue
BuildViteИнструментарий для фронтенда следующего поколения

Внешние источники данных

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 таким удивительным местом для обучения, вдохновения и творчества. Любой ваш вклад очень ценится.

  1. Сделайте форк проекта
  2. Создайте свою ветку фичи (git checkout -b feature/AmazingFeature)
  3. Зафиксируйте свои изменения (git commit -m 'Add some AmazingFeature')
  4. Отправьте изменения в ветку (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

Лицензия

Распространяется под лицензией GNU Affero General Public License v3.0. Смотрите LICENSE для получения дополнительной информации.


Сделано c ❤ nightrunner91