Songstress
Your music. Your server. Every device.
- Year
- 2026
- Role
- Solo
- Category
- product
- Status
- alpha
- Platforms
- 4
- FLAC, offline
- 24/96
- Current release
- v0.31
Web · desktop · iOS · Android

Built with
- React
- TypeScript
- Tauri
- Expo
- PocketBase
- Python
- Tailwind CSS
- Docker
Songstress started as an answer to one irritation: the MP3s and AACs in my library that should have been FLAC all along.
The acquisition pipeline scans a library for lossy files, hunts verified-lossless replacements down a configurable ladder of sources, and swaps them in place, leaving Navidrome favorites and playlists intact. Like Lidarr, but for quality rather than coverage.
It has since grown into the whole listening stack: a player that follows you from the desktop to the couch to the phone, playlists imported from Spotify, Apple Music, Tidal and ListenBrainz, and duplicate-free management across multiple libraries.
What it does that a music player usually does not
- Songstress Connect, hand playback between devices mid-song, the way Spotify Connect does, except the server is yours.
- Playlist time machine, version history for a playlist, with a diff, and the ability to play an old version.
- Merge, symlink-based deduplication across libraries, with undo and quarantine rather than deletion.
- A ten-band equaliser carrying AutoEq profiles for thousands of specific headphone models.
- Gapless playback on a dual buffer, time-synced lyrics with tap-to-jump, and a vinyl mode for people who want to watch the record turn.
Architecture
Ports and adapters. The domain core and application layers depend only on interfaces; the concrete SDK, HTTP and database code lives in adapters at the edges. It is a polyglot monorepo, Turborepo drives the TypeScript workspace and uv drives the Python one.
The desktop app is Tauri, the mobile apps are Expo with native tabs and Home Screen widgets, and the datastore, realtime bus, job queue and SPA host are all one PocketBase instance. A Python asyncio worker does the heavy acquisition work.
Deployment is a single Docker Compose file on anything that runs Docker, a NAS, a mini PC, a cheap VPS.
Status
Alpha, and licensed PolyForm Noncommercial. The server, web player and desktop app are free permanently; the mobile apps are the paid part, and they have not shipped yet.
The product



