Fladder

Cross-platform Flutter client for Jellyfin

Media Servers ★ 2.6k stars Easy setup MIT

Fladder is a cross-platform Jellyfin client built with Flutter, supporting Windows, Linux, macOS, Android, and the web. It provides library browsing, media playback, and downloads in a single unified codebase.

Key features

  • One codebase for all platforms
  • MPV-based playback
  • Offline downloads
  • SyncPlay support

Pros & cons

Strengths

  • Truly cross-platform
  • Lightweight

Trade-offs

  • Younger project
  • Requires Jellyfin server

Fladder replaces

Last reviewed Sep 13, 2026 · 855 words

The best thing about Fladder is the setting most people never change: MPV as the playback engine on every platform. Jellyfin's official desktop and Android apps have historically wrapped browser video, with the transcoding and subtitle compromises that implies, and Fladder sidesteps that by shipping the same Dart codebase with MPV underneath on Windows, Linux, macOS and Android, plus a browser build. It is a 2,571-star client, 2 years old, MIT licensed, and it is not a server: nothing to self-host unless you want to serve the web version yourself.

Where a client fits in a Jellyfin stack

Jellyfin is a server with an API, and the API is what clients speak. That is why a single server can be watched through the official web app, an Android TV app, a Roku channel, and half a dozen community projects. Fladder is one of those community projects, aimed at the gap where the official clients are weakest: desktop and Android phones. It signs in against your server with an ordinary Jellyfin account, honours the same user permissions and parental settings, and reports watch progress back, so switching between it and the official app on the TV is invisible to the server.

The practical benefit is that adopting it costs nothing on the server side. Install Fladder on a laptop, enter the server URL, and the library is there. If it disappoints, uninstall it and nothing about your Jellyfin setup has changed. Compare that with the server-side commitment of, say, Jellyfin Vue, which you would deploy as an alternative web frontend.

Playback is the reason to bother

MPV handles containers and codecs browsers cannot, so more of your library direct plays instead of asking the server to transcode. On a laptop that means smooth 4K HEVC with HDR tone mapping handled locally, and subtitles rendered by libass with proper styling rather than a browser's approximation. If your Jellyfin host is a low-power box without hardware transcoding, this is the difference between watching and buffering.

The other features are the ones you would expect from a modern client. Offline downloads on Android and desktop for travel. SyncPlay, Jellyfin's watch-together feature, is supported, which not every third-party client bothers with. Library browsing covers movies, series, music and photos, with the usual Continue Watching and Next Up rows. Trickplay thumbnails on the seek bar work when the server has generated them.

Where it lags the alternatives

Fladder is young and the platform coverage is broader than the polish. On Android phones, Findroid is a native Kotlin app with a more settled feel, and Streamyfin has a stronger download manager. Neither of those runs on a desktop, which is Fladder's advantage. On Apple devices, Swiftfin is the native choice and Fladder's macOS build is second to it. On the desktop specifically, the long-standing option is Jellyfin Media Player, which also uses MPV and has years more bug reports behind it; Fladder's interface is nicer to look at, while JMP's playback behaviour is better understood.

There is no TV-remote-friendly interface. Fladder is designed for a mouse or a touchscreen, and while it launches on Android TV, the ten-foot navigation is not its focus. Keep the official Android TV app for the living room.

Expect release-to-release churn. A young Flutter app tracking a moving server API will have versions where a Jellyfin update changes something and playback or login misbehaves for a week. Pin the Jellyfin server version if stability matters, and read the release notes before upgrading either side.

Serving the web build yourself

The one self-hostable piece is the browser version. It is a static Flutter web build, and the project publishes a container image for it. The pattern is a small container next to Jellyfin, with a reverse proxy giving it its own hostname, and the client configured with the server URL the same way the desktop app is. The web version runs on browser video, not MPV, so it loses the playback advantage; its purpose is having the Fladder interface on a machine where you cannot install software. Treat it as optional. Most people should install the native builds from the GitHub releases page and never deploy anything.

What I'd do

Keep Jellyfin as it is, and if it is not set up yet follow the complete Jellyfin setup first. Then install Fladder on the desktop and the Android phone that watch most often, and turn on direct play in its settings. Give it 2 weeks. If it plays your awkward files without transcoding, it has earned its place and you keep the official apps only on the TV. If a server update breaks it, fall back to Jellyfin Media Player on the desktop and Findroid on the phone until the next Fladder release; the value of an API-based ecosystem is that swapping clients is a 5-minute decision, and Fladder is the current best pick for a single client across desktop and phone.

Compare Fladder

19 head-to-head comparisons.

Similar media servers apps