Full-featured OpenSubsonic-compatible server, and separate Web, Android and iOS players. Open source (GPLv3).
A single ~7 MB binary that scans your collection, stores it in SQLite, and serves it over the Subsonic API.
Server details arrow_forwardShips inside the server binary. Keyboard navigation, a responsive UI and one-click Chromecast, in any browser.
Web player details arrow_forwardA native Android client that connects to your server over the Subsonic API and plays your collection on the go.
Android app details arrow_forwardA native iOS client that connects to your server over the Subsonic API and plays your collection on the go.
iOS app details arrow_forwardI have been using the original Subsonic server together with the DSub Android app for many years, but have always missed a few features, and the alternatives had other issues. GainDrive was started as an experiment to use AI to do most of the tedious work of writing both server and client apps from the ground up, using modern techniques and libraries, and adding the features I always wanted in a music server and player.
GainDrive Server came first. It was written over the course of a few weeks, with most of it going into thinking about what I really wanted it to do (e.g. the cast-from-server functionality, or the auto-rescan logic). The Android app then followed, in about a week's worth of work. The iOS app was built to mirror the Android app, and took another few days. I have occasionally tweaked small things in the source by hand (more so in the server than the clients), but most of it was written by Claude under my supervision.
GainDrive is what I need to self-host all the music I listen to, without the things I never use (your mileage may vary). Creating it with AI was a different kind of “fun” than doing it by hand, but without AI, I would most likely never have had the time to finish it.
— Kasper Peeters, August 2026