Which episode were you on?

Slow Horses, series 5, episode 2. Nextup remembers, for every show you watch.

Nextup remembers, for every show you watch, wherever you watched it. It works out what is waiting, tells you when the next one airs, and lets you know when a film you wanted finally turns up on something you already pay for.

Free under the GPL. No account, no tracking, nothing to pay.

The Nextup dashboard. A list of everything waiting, newest first, each line naming the episode or film and the day it came out, with how far behind you are, a progress bar and a Watched button. A panel beside it lists episodes airing in the next few days.
The first screen. Everything that has come out and is still waiting, newest first, films among the episodes.

One email, every morning

A short message listing what became watchable overnight. The cover of each show and film, a couple of sentences about it, which channel or service it is on, and a link straight to it. If nothing became available, nothing is sent.

A programme that goes out at eleven at night is not really available until the next day, so you tell Nextup how long to wait and it holds things back accordingly. Set the time to the minute. The covers travel inside the message, so it reads properly even with no signal.

The Nextup morning email, headed Ready to watch, listing two television episodes and a film, each with its cover, the channel or service it is on and a short description.
The Slow Horses page in Nextup, showing the poster, the cast, a details panel with network and episode count, and the first season's episodes listed with a tick beside each.

Catching up without forty clicks

Pick the last episode you remember watching and press Up to here. Everything before it is ticked in one go. That is how you get a show you started three years ago back under control.

Every episode has its own page too, with the still, the synopsis, the air date, the guest cast and the director. Episodes that have not aired cannot be ticked by accident, and the progress bar counts only what has actually been broadcast, so a show is never quietly unfinished because of a Christmas special.

Yes, no, or maybe

Discover shows you what is arriving and asks one question about each of it. A tick puts it on your list. A question mark parks it on the maybe list. A cross sends it away and it does not come back.

The film list asks for home releases rather than cinema ones, so it answers the question someone who does not go to the cinema is actually asking. A cross deletes nothing: the title still turns up in a search, and one button brings back everything you dismissed.

The Discover page in Nextup, a grid of film covers each with a tick, a question mark and a cross underneath.
The Films page in Nextup, split into Ready to watch with service names under each cover, and Coming to streaming listing films with the date they arrive.

Films, and when you can actually watch them

A cinema date is no use if you wait for things to reach a service you already have. Nextup reads the digital, physical and television release dates a film has been given, prefers the UK one, and shows you that instead.

It also names which UK services carry a film right now. Subscription, free and ad-supported ones are listed. Rental and purchase are left out, because the question is what you can put on tonight without paying for it twice.

The month at a glance

Every tracked show on the day it airs, in yellow, with films reaching home viewing in blue. Each is labelled, so the two are told apart without relying on colour, and anything you have watched fades back.

A month calendar in Nextup with episodes marked in yellow and films in blue on the days they arrive.

Not everything is a commitment

There is a difference between the shows you follow and the ones you have half an eye on. The maybe list keeps the second sort out of your dashboard, out of the calendar and out of the email, until you decide.

The Maybe page in Nextup, a grid of covers for shows not currently being followed, each with a Start watching button.

Nothing leaves your server

Most trackers want an account. This one has nowhere to send anything, so it is worth being exact about what it does and does not do.

  • Artwork is fetched once and then served by Nextup itself. Covers are cached in your data directory, so no page in the app ever points your browser at a third-party host, and the email carries its pictures inside the message.
  • The only outbound calls are to TMDB, made by your server, to look up the shows and films you asked for and to ask when a film reaches streaming.
  • No analytics, no telemetry, no crash reporting and no third-party scripts, in the app or on this page. The only script here that is not part of the page is the Lightmorphic apps menu, which is ours and reports nothing.
  • No account with us, because there is no us. Nextup has no server of its own to phone.
  • One cookie, and it is yours. It keeps you signed in. It never leaves your server and it tracks nothing.
  • One directory to back up. The database, the encryption key and the cached artwork all sit in the folder you mounted.
  • One button to take it all with you. Everything you added, everything you watched and how you like it set up comes out as a single file. Put that on another machine and you carry on where you left off.

Running in about five minutes

You need Docker and a free TMDB account.

  1. Make the data directory

    Nextup runs as a normal user inside the container, user ID 1000, so the folder on the host has to belong to that same ID or the app cannot write to it.

    sudo mkdir -p /opt/nextup
    sudo chown -R 1000:1000 /opt/nextup
  2. Start it

    Save this as docker-compose.yml and bring it up. It listens on port 4090 unless you change the left-hand number.

    services:
      nextup:
        image: buildmorphic.com/nextup:latest
        container_name: nextup
        restart: unless-stopped
        ports:
          - "4090:8080"
        volumes:
          - /opt/nextup:/data
          - /etc/localtime:/etc/localtime:ro
    docker compose up -d
  3. Sign in and change the password

    Open it in a browser and sign in with admin and nextup. The app keeps telling you off until you change both, which is the idea.

  4. Add your TMDB key

    Make a free account, then go straight to themoviedb.org/settings/api and copy the API Key for v3 auth. Paste it into the Settings page in Nextup. It is checked against TMDB before it is saved, and encrypted once it is.

  5. Add a show and mark your place

    Search a title, press Add, then use Up to here on the last episode you watched. From then on the front page is a list of what is waiting, and the morning email starts arriving once you fill in your mail server.

What it deliberately does not do

Worth knowing before you spend those five minutes.

  • It does not play anything. No streams, no downloads, no links to either. It is a record of what you watched, wherever you watched it.
  • One person, one list. There is a single account. A household sharing it shares one watch history.
  • There is no import yet. Coming from another tracker means re-entering your history. The season and Up to here buttons make that quicker than it sounds.
  • No push notifications. One email in the morning, or nothing. It will not buzz your phone when an episode lands.
  • It is not hosted for you. There is no signup page and no service to join. You run it yourself or you do not run it.

Questions people ask

Does Nextup play or download anything?
No. Nextup is a notebook, not a player. It records what you have watched and tells you what is next. It holds no video, links to no streams and downloads nothing except artwork from TMDB.
Do I need a TMDB API key?
Yes, and it is free. Make an account, then go straight to themoviedb.org/settings/api and copy the API Key for v3 auth. You paste it into the Settings page inside Nextup, where it is stored encrypted.
How does it know when a film reaches streaming?
TMDB records several release dates for a film, including the digital, physical and television ones. Nextup reads those, prefers a UK date, and falls back to Ireland then the United States. It also lists which UK subscription, free and ad-supported services carry the film, using the JustWatch data TMDB publishes. Rental and purchase are left out.
Can I keep a list of shows I might watch one day?
Yes, that is the maybe list. Anything on it keeps its cover and its next air date but stays out of your dashboard, the calendar and the email, so it never makes you look behind on something you never started.
Can more than one person use it?
No. Nextup has one account and one watch history. Two people sharing it would share a single list. If you want separate lists, run a second copy with its own data directory.
What does it cost?
Nothing. It is released under the GPL version 3, so you can run it, read it and change it. There is no paid tier and no hosted version to buy.
Where is my data kept?
In one directory on your own server. A single SQLite database holds your shows and watch history, alongside the encryption key and the cached artwork. Backing up that directory backs up everything.
How do I update it?
Run docker compose pull, then docker compose down and docker compose up -d. A plain up -d will not fetch a newer image on its own.
What is it built with?
Python and Flask, with SQLite for storage and plain CSS for the interface. There is no JavaScript framework and no build step. The whole thing is small enough to read in an evening.