FlickBuddy is a Next.js movie and series discovery app. It combines TMDB data with AI-assisted ranking, taste profiles, lists, and shareable movie pages.
- AI-assisted discovery and ranking
- TMDB search, trending, popular, recommendations, reviews, trailers, and images
- Taste onboarding and saved taste profiles
- Auth with email/password and optional Google sign-in
- Personal lists and public share links
- SQLite-backed local development
- Pluggable AI providers for self-hosted deployments
- Node.js 20+
- npm
- A TMDB API key
- An API key for at least one supported AI provider
npm install
cp .env.local.example .env.local
npm run devOpen http://localhost:3000.
Set these first:
TMDB_API_KEY=
BETTER_AUTH_SECRET=replace-with-a-long-random-secret
NEXT_PUBLIC_APP_URL=http://localhost:3000
BETTER_AUTH_URL=http://localhost:3000
DATABASE_PATH=./data/FlickBuddy.sqliteThen choose an AI provider:
AI_PROVIDER=openai
AI_MODEL=gpt-4.1
OPENAI_API_KEY=Supported AI_PROVIDER values:
openaianthropicgoogleazure-openaiazure-aiopenrouterollama
See .env.local.example for all provider-specific variables.
All provider calls happen server-side in src/lib/ai.ts. Do not expose AI keys
with NEXT_PUBLIC_*.
For local models, set:
AI_PROVIDER=ollama
AI_MODEL=llama3.1
OLLAMA_BASE_URL=http://localhost:11434/v1For OpenRouter, set:
AI_PROVIDER=openrouter
AI_MODEL=openai/gpt-4.1
OPENROUTER_API_KEY=For Azure OpenAI, set:
AI_PROVIDER=azure-openai
AI_MODEL=gpt-4.1
AZURE_OPENAI_KEY=
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_VERSION=
AZURE_OPENAI_DEPLOYMENT=npm run dev
npm run buildSQLite databases are created under data/ by default and are ignored by Git.
Read CONTRIBUTING.md before opening a pull request.
Read SECURITY.md before reporting vulnerabilities or changing API-key,
authentication, authorization, or data-access code.
MIT

