A self-hosted Letterboxd analytics and tracking dashboard.
Inspired by Your Spotify, but for movies. It syncs your Letterboxd data and enriches it with metadata from TMDB to give you insights into your watching habits.
Your data is stored locally in a single SQLite database that you own. The app runs in a container and automatically syncs new activity on a schedule, so your watch history builds up over time without requiring manual sync.
This is a small, feature-complete project. It's not under active feature development, but it is maintained — I'll fix bugs as they come up. Bug reports are welcome via Issues.
- Dashboard — Watch stats, rating distributions, top genres/directors/actors, calendar heatmap
- Insights — Rating personality analysis, hidden gems, unpopular opinions, box office stats
- Films — Browse your watched films with sorting and filtering
- Diary — View your watch history by date
- Watchlist — See what's next on your list
- Explorer — Deep dive into combined Letterboxd + TMDB data for each film
The app scrapes your public Letterboxd profile to pull your films, ratings, and diary entries. It then enriches each film with additional data from TMDB: budget, revenue, cast, keywords, certifications, and more.
Data syncs automatically every few hours and is stored locally in SQLite.
- Docker and Docker Compose
- A TMDB Read Access Token (get one here)
- A public Letterboxd profile
- Create a
docker-compose.yml:
services:
your-letterboxd:
image: yuyangchee98/your_letterboxd:main
ports:
- "60007:8000"
volumes:
- ./data:/app/data
environment:
- LETTERBOXD_USERNAME=${LETTERBOXD_USERNAME}
- TMDB_ACCESS_TOKEN=${TMDB_ACCESS_TOKEN}
restart: unless-stopped- Create a
.envfile in the same directory:
LETTERBOXD_USERNAME=your_username
TMDB_ACCESS_TOKEN=your_read_access_token
- Run:
docker compose up -d
The image is available from:
- Docker Hub:
yuyangchee98/your_letterboxd:main - GitHub Container Registry:
ghcr.io/yuyangchee98/your_letterboxd:main
-
Clone the repository
-
Create a
.envfile:
LETTERBOXD_USERNAME=your_username
TMDB_ACCESS_TOKEN=your_read_access_token
- Run with Docker Compose:
docker compose up -d
The initial sync may take a few minutes depending on how many films you've logged.
- Backend — Python, FastAPI, SQLAlchemy, SQLite
- Frontend — React, TypeScript, Tailwind CSS, Tremor
This product uses the TMDB API but is not endorsed or certified by TMDB. Not affiliated with Letterboxd.
