Jellybloom
v0.1.0 · Windows · Jellyfin-powered

Your media.
Your server. Actually pleasant.

A desktop client for Jellyfin that talks directly to your server.
Browse, discover, and watch without touching a browser tab.

Fully offline capable No data collection CC0 Public Domain
Jellybloom home page showing a featured COSMOS banner and continue watching shelf
0 Cloud uploads
CC0 Public domain
12 Tech integrations
1 Server to rule them
You already run the server.
Using it should feel like a reward, not a chore.

Jellyfin is powerful, but the default experience is a web app designed by committee. Jellybloom is a ground-up desktop client built for people who own their media and want browsing it to feel as good as the content itself.

Direct connection

Talks straight to your Jellyfin server. No cloud middleman, no account required, no data leaves your network unless you want it to.

Rich player

ASS/SSA subtitle rendering, OpenSubtitles search, audio EQ, picture filters, bookmarks, A-B looping, trickplay thumbnails, and more.

Discover more

TMDB integration finds films and shows you do not have yet. Library gap analysis, mood picks, decade strips, and an "on this day" feature.

Track your taste

Watch diary with ratings, notes, and rewatch counts. Export to Markdown, JSON, or Letterboxd CSV. Stats that stay local.

Built for people who
actually watch things.

Jellybloom home page with a featured COSMOS banner, continue watching shelf, and next up section
Home

Your home, curated.

The home page builds itself from shelves you curate, or suggests rows based on what you actually watch. Continue watching, next up, and featured banners keep the good stuff front and center.

  • Customizable shelf layout
  • Continue watching with progress bars
  • Notification bell for new episodes
Jellybloom TV shows library with a virtualized poster grid showing titles like Adventure Time and The Addams Family
Library

Thousands of items, zero lag.

The poster grid uses virtualization so it stays smooth even with massive libraries. Sort by release date, rating, recently added, or random. Filter by watched status, decade, genre, and more.

  • Virtualized scrolling for any library size
  • Grid, list, and map views
  • Right-click quick look without losing your place
Jellybloom Discover page showing This Week in Cinema and Library Gaps with recommendations
Discover

Find what you are missing.

TMDB-powered discovery surfaces films and shows you do not have yet. The library gap finder analyzes your taste and recommends top-rated titles in genres you already love.

  • Personalized spotlights based on your top genre
  • "This week in cinema" across the decades
  • Mood chips for quick filtered browsing
Jellybloom series detail page for Wednesday showing backdrop, poster, ratings, play button, and cast
Detail Pages

Every detail, covered.

Rich title pages pull from multiple sources. Backdrops, posters, and logos from TMDB. Ratings aggregated from IMDb, TMDB, and your own diary. Cast, crew, filming locations, reviews, trailers, and tech specs.

  • Request buttons for Sonarr and Radarr
  • Anime filler episode detection
  • Multiple version selector
Jellybloom search results page showing people, movies, and TV results for man with no name
Search

Find anything, fast.

Fuzzy unified search across titles, people, and collections. Saved search history keeps your frequent lookups one keystroke away. Suggested searches help you explore.

  • Full keyboard shortcut support
  • Recent and suggested searches
  • Results from both your library and TMDB
Jellybloom stats page showing your year in watching with hours, genre breakdown, and completion stats
Stats

Know your watching habits.

Track your year in watching with detailed analytics. Hours by genre, top studios, completion rates, current streak, and longest binge. All stats stay on your device.

  • Year-in-review summaries
  • Genre breakdown with bar charts
  • Export watch diary to Letterboxd CSV

The things that make
watching better.

Rich media player

Vidstack-powered playback with hls.js. Speed control, chapter navigation, mini player, and cast to other Jellyfin sessions.

OpenSubtitles built in

Search, download, and style subtitles without leaving the player. Size, font, outline, color, background opacity, and positioning.

Audio graph

Compressor and parametric EQ for your listening preference. Audio passthrough lets your receiver handle decoding when it can.

SyncPlay & casting

Join a SyncPlay group to watch together with friends, or cast to another Jellyfin session on your network.

Watch diary

Log watches with ratings, rewatch counts, and notes. Export to Markdown, JSON, or Letterboxd CSV.

Trakt.tv scrobbling

Optional Trakt.tv integration uses device-code auth with no browser redirects. Your watch history stays in sync.

Picture filters

Adjust brightness, contrast, saturation, hue, and gamma on badly-encoded sources directly in the player.

Full keyboard control

Every action can be rebound. Full keyboard navigation throughout the app, with visible focus indicators.

See it in action.

Connect. Browse. Watch.

1

Connect

Add your Jellyfin server by hostname and port. Jellybloom checks the connection and signs you in.

2

Browse

Your library loads into curated shelves and virtualized grids. Pick up where you left off or explore.

3

Discover

Enable TMDB and find films and shows you do not have yet. Request them straight to Sonarr or Radarr.

4

Watch

Hit play. The player handles subtitles, audio, bookmarks, and syncs to Trakt if you want it to.

Modern stack,
no baggage.

A Tauri v2 shell around a React 19 frontend. Vidstack and hls.js handle playback. libass-wasm renders styled subtitles. TanStack Query caches server responses. Everything is local-first.

Tauri v2 React 19 TypeScript Vidstack hls.js libass-wasm Tailwind CSS 4 Zustand TanStack Query TanStack Virtual Fuse.js Leaflet

Your server deserves a better front door.

Jellybloom is free, open source, and dedicated to the public domain. No subscriptions, no feature gates, no one monetizing your watch history.

Windows 10/11 Jellyfin-powered v0.1.0