BokehTV is a full-stack movie and TV show tracking platform designed for media enthusiasts who want to curate, track, and share their watch history. Built with a modern, high-performance stack, it features a responsive Next.js frontend, a robust Express.js API, and a containerized monitoring ecosystem.
This is a multi-repo organization containing:
frontend/— High-performance Next.js 14 Web App (App Router).backend/— Layered Express.js REST API with Prisma ORM.infrastructure/— Docker Compose, Prometheus, and Grafana configurations.documents/— PRD, ADRs, and technical specifications.
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS
- State Management: TanStack Query (React Query)
- Deployment: Vercel
- Framework: Node.js + Express.js (TypeScript)
- Database: PostgreSQL via Prisma ORM (Neon for Production)
- Caching: Redis (Upstash for Production)
- Validation: Zod
- Logging: Winston
- Metrics: Prometheus & Grafana
- Hosting: Railway
BokehTV follows a clean, layered architecture:
- Frontend: Server-component first, with client components for interactive fragments (Auth, Search).
- Backend Services: Thin controllers routing to logic-heavy services, backed by the Prisma repository layer.
- Observability Layer: A dedicated Prometheus/Grafana stack scraping backend metrics for real-time monitoring.
- Docker & Docker Compose
- Node.js 18+
- TMDB API Key
Create .env files in backend/ and frontend/ using their respective .env.example templates.
cd infrastructure
docker-compose up -dcd backend
npm install
npx prisma migrate dev
npm run devcd frontend
npm install
npm run devVisit http://localhost:3000 to see it in action.
MIT