jeffvli

jeffvli/feishin

TypeScript GPL-3.0 Media Single maintainer risk

A modern self-hosted music player.

9k stars
464 forks
active
GitHub +90 / week

9k

Stars

464

Forks

207

Open issues

30

Contributors

v1.13.0 03 Jun 2026

AI Analysis

Feishin is a modern, self-hosted music player designed for music streaming servers like Jellyfin, Navidrome, and Subsonic-compatible systems. It serves users who want a polished desktop or web interface for personal music libraries, offering features like MPV player backend, smart playlists, and lyric support. This tool is specifically for self-hosted music server enthusiasts and is not a general-purpose media player or cloud streaming client.

Media Application Discovery value: 5/10
Documentation 7/10
Activity 9/10
Community 8/10
Code quality 5/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

music-player self-hosted subsonic electron-desktop typescript
Actively maintained Popular Niche/specialized use case GPL-3.0 licensed Beginner friendly Production ready
Deep Analysis · Based on README and public signals
2w ago

Feishin: a polished desktop/web music client for self-hosted Jellyfin and Navidrome servers

Feishin is a TypeScript-based desktop and web music player designed for users running self-hosted music servers (Jellyfin, Navidrome, and OpenSubsonic-compatible servers). It replaces the author's earlier project Sonixd, offering a modern UI, dual audio backends (MPV for desktop, web audio for browser), scrobbling, synchronized lyrics, and smart playlists. Its target audience is the self-hosted media enthusiast community — people who run their own music libraries and want a capable, aesthetically refined client. With ~8,800 stars, active Discord/Matrix communities, Flathub availability, and a Docker deployment path, it has established meaningful real-world presence in the hobbyist homelab and audiophile self-hosting scene.

Origin

Created in July 2022 as a full rewrite of Sonixd, itself a well-regarded Subsonic-API client. Feishin carries forward that user base while modernizing the stack and expanding server compatibility to include Jellyfin natively.

Growth

Growth appears driven by the expanding self-hosted media server community, Sonixd's established reputation feeding migration to Feishin, and Jellyfin's own rising popularity (53k stars). Flathub listing and Docker support lowered the installation barrier. Steady 52 stars/week as of June 2026 suggests organic, word-of-mouth growth rather than viral spikes.

In production

Available on Flathub with documented installs, Docker image on GitHub Container Registry (ghcr.io), and a hosted web demo on Vercel. Discord community exists (invite linked in README). Download count badge visible on GitHub releases. Adoption is real but concentrated in the self-hosted hobbyist segment; no enterprise or large-scale deployment evidence documented.

Code analysis
Architecture

Likely an Electron-based desktop application with a React/TypeScript frontend, given the project uses TypeScript and ships desktop binaries alongside a web version. Appears to use MPV as an external audio backend on desktop via IPC, and falls back to the Web Audio API in browser/Docker deployments. Server communication likely via Jellyfin REST API and OpenSubsonic API.

Tests

not documented in README

Maintenance

Last push was June 23, 2026 — the same day as the evaluation date — indicating very active maintenance. The project has been continuously updated since 2022 and maintains a public taskboard, Discord, and Matrix channel, all pointing to a healthy, engaged maintainer and community.

Honest verdict

ADOPT IF: you run a Jellyfin or Navidrome self-hosted music server and want a polished, actively maintained desktop or web client with MPV audio backend, scrobbling, and lyrics support. AVOID IF: you need a mobile client, require support for other media types (video, podcasts), or are not running a compatible self-hosted server. MONITOR IF: you use alternative Subsonic-API servers not yet fully tested, or rely on features listed as in-progress on the taskboard.

Independent dimensions

Mainstream potential

3/10

Technical importance

6/10

Adoption evidence

5/10

Risks
  • Single maintainer dependency: project velocity and continuity appear heavily reliant on one author (jeffvli), creating bus-factor risk.
  • Electron-based desktop apps carry known resource overhead and platform-specific packaging friction (e.g., macOS quarantine issues noted in README).
  • MPV audio backend requires separate installation on some platforms, adding setup friction for non-technical users.
  • Scope is intentionally narrow (music-only, specific server APIs), which limits adoption ceiling but also means any API changes upstream (Jellyfin, Navidrome) could require rapid adaptation.
  • Native Wayland support is noted as experimental and unsupported, which may be a friction point as Linux desktop adoption of Wayland accelerates.
Prediction

Feishin is likely to remain the de facto community-preferred desktop client for Jellyfin/Navidrome music listening, growing steadily alongside those server projects. Mainstream breakout is unlikely given the niche requires self-hosting infrastructure.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

TypeScript
95.8%
CSS
4%
JavaScript
0.1%
Shell
0.1%
HTML
0%
Dockerfile
0%
Go Template
0%

Information

Language
TypeScript
License
GPL-3.0
Last updated
8h ago
Created
48mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

SPlayer-Dev

SPlayer-Dev/SPlayer

SPlayer is a cross-platform music player built with Vue 3 and Electron that...

7.4k TypeScript Media
Jellify-Music

Jellify-Music/App

Jellify is a free, open-source music player for Jellyfin media servers, built...

1.7k TypeScript Media
tsukinaha

tsukinaha/tsukimi

Tsukimi is a GTK4-based third-party client for Jellyfin (and partially Emby)...

3k Rust Media
jellyfin

jellyfin/jellyfin-web

Jellyfin Web is the official frontend client for Jellyfin, a free and...

3.7k JavaScript Media
dweymouth

dweymouth/supersonic

Supersonic is a lightweight, native cross-platform desktop music client for...

2.2k Go Media
vs. alternatives
Sonixd (jeffvli/sonixd)

Feishin's direct predecessor by the same author. Feishin is its intended replacement with a modern UI rewrite; Sonixd is in maintenance mode. Users are expected to migrate.

Jellyfin Web (jellyfin/jellyfin-web)

The official Jellyfin web client is a general-purpose media frontend covering video, music, and more. Feishin is music-only and offers a more focused, opinionated listening experience with MPV backend and audiophile-oriented features.

SPlayer

SPlayer appears to target similar TypeScript-based music playback but context suggests it may be more China-focused or streaming-oriented. Feishin is explicitly self-hosted-server-first with Jellyfin/Navidrome integration.

Jellify (Jellify-Music/App)

Jellify appears to be a mobile-focused Jellyfin music client. Feishin is desktop/web-first. They serve complementary form factors rather than directly competing.

Streamyfin

Streamyfin targets Jellyfin video/media streaming on mobile. Feishin is music-specific and desktop/web-focused; overlap is minimal and audiences differ.