Command palette
Add anything in one keystroke.
Press ⌘K, search the entire TMDB catalog, hit enter. Films, shows, episodes, all in your library before the keystroke fades.
Track everything you want to watch, are watching, and have loved. One fast app. No social network, no algorithm. Just your shelf, on your machine.
MIT licensed · Docker or Vercel · Your data never leaves your box.
Slate is a single-user app. It optimizes for one thing: helping you decide what to watch tonight, and remembering what you thought of it tomorrow.
Command palette
Press ⌘K, search the entire TMDB catalog, hit enter. Films, shows, episodes, all in your library before the keystroke fades.
AI search
“Cozy autumn mysteries.” “A24 horror after 2020.” “Nolan thrillers.” Powered by Llama 3.3, Claude, or whatever endpoint you point it at.
Critic scores
Every saved title carries an IMDb rating and a Tomatometer (with a Metacritic fallback). Fetched once, cached, surfaced everywhere.
Three states
Three clean shelves with Love / Like / Dislike ratings and a private notes field. No followers, no public timeline, no thumbs you don't want.
One-step import
Drop in a CSV. Slate matches every row against TMDB, dedupes against your library, and drops it into the right state with ratings preserved.
Yours, by default
Run it on your laptop in Docker, or on Vercel + Supabase. The only outbound calls are to TMDB. Lock the door with a passcode if you want.
Plain-English search
Flip the “Ask AI” pill in the command palette and type the way you actually think. Slate turns vibes into a real shortlist. Pulled from TMDB, scored on critic data, deduped against what you've already seen.
Defaults to Groq's free tier (Llama 3.3 70B). Bring your own OpenAI-compatible endpoint, or set AI_PROVIDER=anthropic for Claude.

Pearl (2022)
Slasher · Ti West

Talk to Me (2023)
Supernatural · Philippou

Men (2022)
Folk horror · Garland

X (2022)
Slasher · Ti West

I Saw the TV Glow (2024)
Surreal · Schoenbrun

Anora
2024

Conclave
2024

Severance
S2 · E5

Slow Horses
S4 · E1

The Holdovers
Loved

Past Lives
Liked
Three shelves, no friction
Move titles between shelves with a click. Add a private note. Mark it Loved, Liked, or Disliked. Nothing public to maintain, no one to follow. Slate is the opposite of a feed.
Self-host in five minutes
Slate is built to be self-hosted. One docker-compose file spins up the whole stack on your box (Postgres, PostgREST, the app) and keeps every byte of your library under your roof.
One docker-compose, three services.
Postgres, PostgREST, and the Next.js app, wired through Caddy so the Supabase client works unchanged.
Your data lives in a named volume.
pg_dump for backups. docker compose down -v to wipe. No vendor lock-in, no cloud egress bills.
Passcode-gated by default.
Set APP_PASSCODE in .env to lock the app behind a shared cookie. Multi-user? Swap in Supabase Auth + RLS.
Or one-click on Vercel.
Same repo. Vercel + Supabase deployment in five minutes. The schema is a single SQL file.
$ git clone github.com/gitshanks/slate.git
$ cd slate
$ cp .env.example .env # add TMDB + OMDB keys
$ docker compose up -d
[+] Running 4/4
✔ postgres Started
✔ postgrest Started
✔ caddy Started
✔ slate Started
# http://localhost:3000, done.Built on
Try the live demo with seeded data, or pull the repo and have your own copy running before the kettle boils.