Reely is a free, open-source movie and TV app built on the TMDB API. Browse trending and top-rated titles, narrow them with filters that apply as you move them (genre, rating, runtime, year, language, certification, streaming provider), search from anywhere with ⌘K, and keep a watchlist and watch history. Installs as a PWA.
I kept opening three tabs to decide on one film: one to remember what a title was, one to check whether it was any good, and one to write down that I had already seen it. Reely is those three tabs.
It is a TMDB-powered browser for movies and TV. The filters are the part I actually built it for — genre pills that can exclude as well as include, plus rating, vote count, runtime, decade, language, age certification and which service has it. They all apply as you move them instead of behind a Save button, and they all live in the URL, so a filtered list is a link you can send. ⌘K searches from any page. A watchlist and a watch history live in your browser; signing in with Google is optional and only syncs them to your phone.
Playback is in-page through an external source you configure — Reely hosts no video, and the disclaimer says so.
The architecture is the other half of the story. It is a Next.js static export on Cloudflare Workers Static Assets, so Next.js does not run in production at all. Under the previous OpenNext deployment, 20–46% of Worker invocations were killed on the free plan's 10 ms CPU budget; after the migration that is 0.0% and p99 CPU went from ~700 ms to ~8 ms. One hand-written Worker serves the API and rewrites a fallback shell for detail ids outside the prerendered set, so a crawler cannot tell a tail page from a baked one.
MIT: https://github.com/Vette1123/mov... — happy to answer anything about the static-export migration or the filter system.