lyrebird

Jellify Desktop — Roadmap

Living document. Status as of initial-scoping sprint; revise with every milestone close.

Goal

Ship a native desktop Jellyfin client — no Electron, no webview — that feels indistinguishable from a first-party app on each target OS. Target polish bar: Apple Music, Spotify, and Doppler. Not a music-collection-mapping tool; a daily-driver music player.

Status

Milestones

M3 — macOS polish

Deliverable: the macOS app is objectively within design tolerance of the prototype, with Apple Music-equivalent interactions. Every screen works end-to-end with loading/error/empty states. Menu bar populated, media keys routed, keyboard shortcut map complete. MPNowPlayingInfoCenter and MPRemoteCommandCenter surface Now Playing to Control Center and the lock screen.

Key work — see issues under milestone:M3 — macOS polish:

M4 — macOS distribution

Deliverable: gh release create vX.Y.Z produces a signed, notarized, stapled Jellify.dmg that launches without Gatekeeper prompts on a clean Mac. Sparkle appcast serves updates.

Key work:

M5 — Windows port

Deliverable: WinUI 3 app matches macOS MVP scope (login → library → album → play) with SMTC integration. MSIX package.

M6 — Linux port

Deliverable: GTK4 + libadwaita app matches macOS MVP. MPRIS2 integration. Flatpak published to Flathub.

Cross-cutting tracks

These tracks span multiple milestones:

Labels + milestones

Research source

The issue set was generated from a coordinated research sprint — see Scripts/create-issues.py for the batching tool and <sub>Source: NN-*.md</sub> footers on each issue for traceability.