A minimal film club app: browse by genre (rooms), propose and upvote films, lock “tonight’s pick,” and see where to watch. Data from TMDB; optional links to iCheckMovies and curated lists.
- Rooms (by genre) — 10 rooms: Comedy, Action, Horror, Drama, Sci-Fi, Fantasy, Romance, Thriller, Documentary, Animation. Each room has a distinct palette and optional director-inspired tagline. From a room you can:
- See tonight’s pick (one locked film per room)
- Propose a film (search by title) and upvote others’ proposals
- Browse “In this room we could watch…” — highly-rated TMDB titles in that genre, cycled by day
- See previously played films in that room
- Discover — “I want to see a movie that…” — search by phrase or keywords (e.g. “cat”, “time travel”); results are matched from TMDB.
- Movie Lists — Curated lists (e.g. TSPDT, Sight & Sound) with descriptions and links to sources or iCheckMovies. Open a list to browse titles and get ideas for proposals.
- Polls — Overview of all proposals and votes across rooms; films with 5+ upvotes are highlighted.
- Movie page — For any film: poster, title, year, directors, cast, overview, and where to watch (stream/rent/buy) for your chosen region.
- Watch region — Footer control to set your country; “Where to watch” uses this for TMDB provider results.
- Dark/light theme — Toggle in the header.
npm install
npm run devOpen http://localhost:3000. Code changes hot-reload.
Copy .env.example to .env:
- TMDB_API_KEY (required): themoviedb.org/settings/api
- AI_GATEWAY_API_KEY (optional): for Discover chat (Mistral via Vercel AI Gateway). If unset, Discover chat shows an error when used.
- Do not commit
.envor put real keys in the repo.
- Next.js (App Router) + TypeScript + Tailwind CSS
Room and director config: lib/constants.ts. List definitions: lib/lists.ts.
- Vercel: Link the repo, set
TMDB_API_KEY(required) and optionallyAI_GATEWAY_API_KEY(Discover chat) in Environment Variables, then deploy. Build:npm run build; output: default. - Docker: From project root:
docker build -t dailyfictions .(use a Dockerfile that runsnpm ci && npm run build && npm startwith Node 20+). Run withTMDB_API_KEYin the environment. - Ensure
npm run buildpasses before deploying.
- Engineering prompts: ENGINEERING_PROMPTS.md — milestones and checkpoints.
- Design/plans:
.cursor/plans/— aesthetics, rooms, director pairings, APIs.