A personal media tracking application for recording books, films, series, and games.
- Track multiple media types: books, films, series, games
- Star rating system (0-10)
- Progress tracking (pages, chapters, episodes, hours)
- Status management (planned, in progress, completed, paused)
- Search and import from NeoDB
- Terminal-style UI
- Support for SQLite and PostgreSQL databases
- Framework: Next.js 16
- Database: SQLite (node:sqlite) or PostgreSQL (pg)
- Styling: Tailwind CSS 4
- UI Components: Radix UI
- Language: TypeScript
# Install dependencies
pnpm install
# Configure environment variables
cp .env.example .env
# Run development server
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm startSet the following in your .env file:
DATABASE_TYPE=pgsql
DATABASE_URL=postgresql://user:password@localhost:5432/databaseOpen http://localhost:3000 in your browser.
| Variable | Required | Description |
|---|---|---|
ENJOYRECORD_ADMIN_PASSWORD |
No | Admin password for protected actions (sync, create, update, delete) |
DATABASE_TYPE |
No | Database type: sqlite (default) or pgsql |
DATABASE_URL |
Yes* | PostgreSQL connection URL (required when DATABASE_TYPE=pgsql) |
The easiest way to deploy is using Vercel:
- Fork this repository
- Import to Vercel
- Configure environment variables:
DATABASE_TYPE: Set topgsql(recommended for Vercel)DATABASE_URL: Your PostgreSQL connection stringENJOYRECORD_ADMIN_PASSWORD: Optional admin password
- Create a new project on Vercel
- Add Vercel Postgres database
- Use the provided
DATABASE_URLin your environment variables - Set
DATABASE_TYPE=pgsql
docker build -t enjoyrecord .
docker run -p 3000:3000 \
-e DATABASE_TYPE=pgsql \
-e DATABASE_URL=postgresql://user:password@host:5432/db \
enjoyrecordsrc/
├── app/ # Next.js app router
├── components/ # React components
└── lib/ # Utilities and database
MIT