Ryot

One diary for the films, shows, books and games you enjoy, and the workouts you do.

Hobbies GPL-3.0-only

What it does

Ryot is a private diary for your free time. Log the films and shows you watch, the books you read, the games you play and the podcasts you hear, rate them and keep a "to watch" list. It also logs gym workouts and body measurements, with graphs to show your progress. It reminds you when a new episode of a show you follow comes out. It runs on your own computer or server, so your history stays yours.

  • Films, TV, books, anime, games, podcasts and music in one diary
  • Imports from Goodreads, Trakt, IMDb, Netflix and more
  • Workout logging with a large exercise library and progress graphs
  • Alerts for new episodes and automatic logging from Jellyfin, Plex and Kodi

Great for: People who like to keep a record of what they watch, read and play, and anyone logging gym workouts, without handing that history to a big platform.

Make it yours: ideas

Pick an idea to start from, or describe your own.

How easy is it to adapt?

Everyday changes (which media types you track, units, dashboard sections, notifications, imports) are settings in the app. Code changes mean a Rust backend (crates/**) plus a React frontend (apps/frontend/), joined by a GraphQL API with generated types, so builds are slow and need Rust, Node 24 and PostgreSQL. The author is rewriting Ryot in TypeScript on a separate branch, so code changes to this version will not carry over to the next major release. Your AI always tries the gentlest step first, so your version stays easy to update.

  1. Settings 3 options

    No code. Change it in the app or its config.

    • Hide media types you don't use, choose dashboard sections and their order, units (kg/lb, km/mi), rating scale and more.
    • Turn on films, TV and games by adding free API keys; dashboard message, sign-up and telemetry switches.
    • Get told about new episodes, release dates and reminders on Telegram, Discord, ntfy, Gotify, Pushover, Apprise, email and more.
  2. Extend 3 options

    Themes, plugins, webhooks and the API. Still no fork.

    • Bring your history in from Goodreads, Trakt, IMDb, Netflix, MyAnimeList, Strong, Hevy, Plex, Jellyfin and others.
    • Log what you watch automatically from Jellyfin, Plex, Emby or Kodi, or send updates to Radarr and Sonarr.
    • Write your own scripts, e.g. a yearly reading summary or a printed watchlist.
  3. Code 2 options

    Your AI edits the source for anything else.

    • New screens or a different look. Uses Mantine components.
    • New data or behaviour. Regenerate frontend types afterwards (see AGENTS.md).

Can I trust it?

  • GPL-3.0-only. Free to use, change and share. If you give copies of the app (changed or not) to other people, you must also give them the source code under the same licence. Running it for yourself, or as a website for others, has no extra obligations. Some extra features ("Ryot Pro") need a paid key from the author; the free version works fully without it.
  • Your data: stores personal data, on your own device or server. PostgreSQL (the postgres_storage volume). Uploaded images go to S3-compatible storage if configured.
  • Other services: TMDB (The Movie Database) (optional, free for personal use); Twitch / IGDB (optional, free); Other data providers (Open Library, AniList, MyAnimeList, Audible, iTunes, Spotify, Google Books, Hardcover, ListenNotes and more) (optional, free; some need a free API key); Ryot Pro key (via Unkey) (optional, paid subscription or lifetime licence from ryot.io); S3-compatible file storage (e.g. MinIO) (optional, free if self-hosted); Telegram, Discord, ntfy, Gotify, Pushover, Apprise or email (SMTP) (optional, free)
  • Pinned version 77190a6. Every handover uses exactly this code, which we've reviewed.
  • Set a long random SERVER_ADMIN_ACCESS_TOKEN and change the example database password before real use.
  • USERS_ALLOW_REGISTRATION is true by default. Turn it off once your accounts exist if Ryot is reachable from the internet.
  • Anonymous usage statistics go to the author's Umami server unless you set DISABLE_TELEMETRY=true.
  • Integration webhook URLs let anyone who has them add plays to your account. Keep them private.
  • Looking up a title sends the search words to outside providers such as TMDB or Open Library. Your history stays on your server.

Did it work for people?

No reports yet

Be the first to tell others how it went.

Tell us how it went

For your AI

The project pack has the pinned version, how to run it, and where to customise it. Your prompt links to it automatically.

https://handoff.bespokeai.software/p/ryot/77190a6/pack.md

Your own Netflix for the films, TV and music you already have, on every screen.

Hobbies

Your own Spotify for the music you already own, on your phone and in any browser.

Hobbies

Your own private Audible for the audiobooks and podcasts you already have.

Hobbies