main
Film Intel
Reliable film age ratings, explained. Search any film and get a clear breakdown of why it received its age rating, plus how that rating differs across countries.
Requirements
- Node.js 22
- A TMDB API key (https://www.themoviedb.org/settings/api)
- An LLM API key (OpenRouter or any OpenAI-compatible endpoint)
- PostgreSQL for caching generated rating cards (optional but recommended)
Copy .env.example to .env and fill in the keys.
Development with Docker (recommended)
Starts the app (with live reload) and the database, and runs migrations automatically on first start:
docker compose -f docker-compose.dev.yml up --build
- Open http://localhost:3000
- Source code is mounted for live reload (
npm run devinside the container) - Stop with
docker compose -f docker-compose.dev.yml down
Development without Docker
npm install
npm run dev
Without a database the rating cards will still generate (they just won't be cached), thanks to graceful cache handling. Run
npm run db:migrateagainst a reachable Postgres to enable caching.
Production
docker compose -f docker-compose.yml up --build
Scripts
npm run dev— start the Next.js dev servernpm run build— production buildnpm run start— serve the production buildnpm run lint— run ESLintnpm run db:migrate— apply database migrations
Languages
TypeScript
93.3%
JavaScript
2.8%
Dockerfile
2.4%
CSS
1.2%
Shell
0.3%