Skip to content
@bokehtv

Bokeh TV

BokehTV — The Ultimate Media Tracking Platform

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.


🏗 Repository Structure

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.

🛠 Tech Stack

Frontend

  • Framework: Next.js 14 (App Router)
  • Styling: Tailwind CSS
  • State Management: TanStack Query (React Query)
  • Deployment: Vercel

Backend

  • 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

📈 Architecture Overview

BokehTV follows a clean, layered architecture:

  1. Frontend: Server-component first, with client components for interactive fragments (Auth, Search).
  2. Backend Services: Thin controllers routing to logic-heavy services, backed by the Prisma repository layer.
  3. Observability Layer: A dedicated Prometheus/Grafana stack scraping backend metrics for real-time monitoring.

🚀 Quick Start (Local Development)

1. Prerequisites

  • Docker & Docker Compose
  • Node.js 18+
  • TMDB API Key

2. Environment Setup

Create .env files in backend/ and frontend/ using their respective .env.example templates.

3. Start Infrastructure

cd infrastructure
docker-compose up -d

4. Start Backend

cd backend
npm install
npx prisma migrate dev
npm run dev

5. Start Frontend

cd frontend
npm install
npm run dev

Visit http://localhost:3000 to see it in action.


🛡 License

MIT

Pinned Loading

  1. frontend frontend Public

    TypeScript

  2. backend backend Public

    TypeScript

  3. infrastructure infrastructure Public

Repositories

Showing 4 of 4 repositories

Top languages

Loading…

Most used topics

Loading…