Live PWA · TMDb API · Cloudflare Workers

Watchlist.

Our family keeps its films and series on one list, and every title says where we can watch it at no extra cost.

The problem
On top of the subscriptions there are the public broadcasters’ free catalogues. Before you can watch a film, you go hunting through several apps to see where it’s on.
The solution
Next to every title on the list is the service where it costs you nothing extra. One tap opens that service.
How I built it
I built Watchlist with my AI team. I decided to do without accounts and sign-ins altogether.
Watchlist on a computer shows a wall of posters for dozens of films and shows, each card marked with the service it’s on.
01 / 03

Step 01 · of 3

The whole list as a wall, each card marked with its service

Where’s it on right now?

Watchlist knows Netflix, Prime Video, Disney+, Apple TV+, Sky Go, HBO Max, Paramount+, Magenta TV, Joyn and RTL+, plus the free catalogues of ARD, ZDF, ARTE, 3sat and KiKA. For every title the app checks where it’s showing in Germany. A free catalogue gets priority because it costs nothing, followed by the subscriptions you have. Renting and buying don’t count.

If a title isn’t available anywhere at no extra cost, it stays parked and the app checks again later. When I know better than the data, I set the service by hand and it stays put.

What we’re watching tonight.

You can filter by films or series and by service, and sort by newest, rating or title. Up to five titles go on the shortlist for the evening. Anything we’ve watched drops into a separate list further down.

There’s also a weekly magazine with new and upcoming titles and older finds from the catalogue, picked to match what’s on your list and what you’ve already seen.

Poster and availability data: TMDb. This app uses the TMDb API but is not endorsed or certified by TMDb.

/ tech decisions

Three decisions that mattered.

Hosting

Static files and a small worker

The app is a set of ready-made files on GitHub Pages that the browser loads and you can install like an app (a PWA). Anything that needs a server runs in a Cloudflare Worker, a small program on Cloudflare’s network. It keeps the TMDb key, stores the lists in Cloudflare KV, a simple data store, and builds the magazine once a day on a timer.

Availability

One service per title

Where each title is streaming comes from TMDb, an online film database, for Germany. The worker checks up to 40 titles at a time and returns one service with a link for each. For most services the link goes straight to a search for that title; for Disney+, Paramount+ and HBO Max it opens their search page.

Sync

A key in the link

Each list has a secret key of at least 32 characters. It travels in the link or is saved in the browser, and the worker uses it to keep devices in step. If two devices change the same list, the more recent version wins. The link opens the whole list, so it stays within the family.

See Watchlist live → Status   Live · in use

/ other apps