Jellyfin 12.0 is out. The new interface looks much more modern than the 10 series, and it’s the change most people will spot first. The interesting part is underneath: the way playlists and collections are stored has been rebuilt, and architecturally that’s a positive over the old 10 series.
The interface
The experimental layout from 10.11 is now the default. It’s called Modern, desktop and mobile get it unless you’ve already chosen otherwise, and the old layout is still there as Legacy. TVs are unchanged. Bundled themes now share a CSS-variable base, which fixes custom themes (Ultrachromic, JellyFlix and the rest) breaking on every release.
The backend
Playlists used to keep every item inside one big list the database couldn’t look into, so asking for a count or the first page cost the same as loading the whole thing. Now every item is its own row: batch deletes no longer fail halfway, Continue Watching, Next Up, Latest Media for music, artist lookups and folder watched-counts are all faster, and database maintenance no longer runs during library scans. Jellyfin’s own summary: “pages that used to freeze no longer freezing.”
Also in this release
FFmpeg 8.1, a spec-compliant dvh1 HLS variant for Dolby Vision Profile 5, subtitles through SubtitleEdit, and native book and comic metadata (Bookshelf is deprecated, absorbed into the server). Internal TLS/SSL removal is pushed to a future version, so reverse proxies get more time, but no reprieve.
Before you upgrade
This release rewrites your data, and a backup is the only way back. You need to be on 10.10.7 or later, and third-party plugins have to be removed first: 10.11-era plugins won’t load. The version number is its own trap. What would have been 10.12 is now simply 12.0, so anything that reads Jellyfin version strings needs checking: clients, monitoring checks and container tags. Expect a full library scan afterwards, longer than usual. And check the user list: usernames are now case-insensitive, and two accounts that differ only by capitalisation will make the migration fail outright.
That’s my read of 12.0: much more modern where you can see it, and an architectural positive where you can’t. If you make the jump, don’t skip the backup.
Source: Jellyfin 12.0 release post