Skip to content

HamadTheIronside/Driftfin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,677 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Driftfin Driftfin

A cross-platform Jellyfin frontend built on top of Flutter.

Driftfin is a fork of Fladder by DonutWare, continued under the same GPL-3.0 license. Huge thanks to the original authors. See Credits & Attribution.

FeaturesDownloadRoadmapContributingCreditsLicense

Checks GitHub Downloads (all assets, all releases) GitHub Release Conventional Commits

Features

Playback

  • Direct play, transcode, and offline playback
  • Watch Together — synchronised group playback (Jellyfin SyncPlay) with in-session chat
  • Subtitle timing offset, fine-tuned during playback
  • Media-segment skipping (intro / credits / etc.)
  • Trickplay timeline scrubbing
  • Next-up overview when watching a queue

Library

  • Browse, refresh content, and edit metadata
  • Download items and keep watch progress in sync across devices
  • Server management and multiple-user / multiple-server switching
  • Jellyseerr / Seerr integration
  • Comic book reading support (.cbz, .cbr)

Interface

  • Adaptive layout for phone, tablet, TV, and desktop
  • Dark / light mode with multiple color styles
  • Keyboard shortcuts

Platforms

Mobile Desktop Other
Android (+ TV), iOS Windows, macOS, Linux Web, Docker

Download

Prebuilt binaries for every platform are on the releases page. Platform-specific install and usage notes live in INSTALL.md.

Docker:

ghcr.io/hamadtheironside/driftfin:latest
ghcr.io/hamadtheironside/driftfin-rootless:latest

Web: try the hosted web build — or visit the project site first.

Note

The GitHub-hosted web build only allows https connections (a GitHub limitation). Self-hosted web builds work fine over plain http.

Warning

On Windows, some Flutter apps are flagged as false positives by Windows Defender. This is a known Flutter/Defender issue, not malware.

Roadmap

What's planned and in progress lives on the Driftfin Roadmap. Have an idea? Open a feature request.

Driftfin Server Plugin (optional)

Driftfin stores its integration settings — Jellyseerr/Overseerr, Sonarr, Radarr and Trakt — per user, per device. The optional Driftfin Jellyfin plugin lets an admin configure those once on the server so every client picks them up automatically.

The app works perfectly without it. With no plugin installed, nothing changes — each user configures integrations locally as before. The plugin lives in jellyfin-plugin/ and is built/released separately from the app.

What it does

  • Centralizes Seerr/Sonarr/Radarr URLs + API keys and Trakt app credentials.
  • Clients fetch the config on login (GET /Driftfin/Config). A configured integration becomes read-only in the app, shown as "Managed by server".
  • Per-user secrets stay local: Trakt OAuth tokens and Jellyseerr session cookies are still established on each device.

Heads-up: the config endpoint returns the stored values (including API keys) to any logged-in Jellyfin user — the same trust model Driftfin already uses for client-side keys. Don't enable it where untrusted users shouldn't see your *.arr keys.

Set it up

  1. Install — build the plugin (see jellyfin-plugin/README.md), then either drop the DLL into a Driftfin folder under your Jellyfin plugins/ directory, or add a plugin-repository manifest URL in Dashboard → Plugins → Repositories and install "Driftfin". Restart Jellyfin.
  2. Configure — open Dashboard → Plugins → Driftfin and fill in the integrations you want to share, then Save.
  3. Use — Driftfin clients pull the config on the next login; managed fields become read-only. Uninstall the plugin to hand control back to each client.

⚠️ The plugin's targetAbi must match your Jellyfin server version (defaults to 10.10.x). See jellyfin-plugin/README.md.

Contributing

Interested in contributing? A few ways to help:

🐛 Reporting bugs

  • Check that the issue hasn't already been reported.
  • Include clear, detailed steps to reproduce — it makes fixing the bug much faster.

🚀 Pull requests

  • For new features or large changes, open an issue first so work isn't duplicated.
  • Keep PRs short and focused — avoid bundling unrelated fixes.
  • Tests are required: every bugfix and new feature must include unit and widget tests (test/, *_test.dart). CI runs flutter test on every PR and must pass.

🌐 Translations

  • Translations live in lib/l10n/app_*.arb. Edit the relevant file (keys are defined in app_en.arb) and open a PR.

See CONTRIBUTING.md and DEVELOPEMENT.md for setup and full guidelines.

Credits & Attribution

Driftfin is a fork of Fladder by DonutWare. All credit for the original application goes to the Fladder authors and contributors; Driftfin builds on their work and continues under the same GPL-3.0 license. Changes made in this fork are tracked in this repository's git history.

This software is built with Flutter and many open-source packages (see pubspec.yaml).

License

This project is licensed under the GNU General Public License v3.0 — the same license as the upstream Fladder project. See the LICENSE file for the full text.

About

Driftfin - A cross-platform Jellyfin Frontend built on top of Flutter. Driftfin is a fork of Fladder by DonutWare.

Resources

License

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Dart 90.9%
  • JavaScript 4.1%
  • Kotlin 3.5%
  • C++ 0.3%
  • C# 0.3%
  • HTML 0.3%
  • Other 0.6%