Building VerseFlow Across Android, Desktop, and the Car
A behind-the-scenes look at designing a local-first music player with Kotlin, Jetpack Compose, Media3 playback, lyrics, metadata, cached listening, and release targets for Android, Android Auto, macOS, and Windows...
Why I Built It
Most music apps are built around streaming first. VerseFlow is built around ownership and control: local files, cached listening, clean playback controls, and a UI that gets out of the way once the music starts.
Core Experience
The app focuses on smooth playback, lyrics, notifications, artwork, metadata enrichment, and a library flow that feels quick to browse. The goal is to make common actions feel immediate, whether someone is playing one album or moving through a large local collection.
Engineering Stack
Kotlin and Jetpack Compose shape the interface, while Media3 handles the playback foundation. The same product thinking carries into macOS and Windows releases so the app can feel consistent without forcing every platform to look identical.
Hardest Parts
The tricky parts are the ones users should never notice: stable playback state, clean media sessions, metadata edge cases, Android Auto behavior, packaging releases, and keeping the interface responsive while the library grows.
What Comes Next
I want to keep improving library management, polish the desktop builds, tighten Android Auto support, and push the app closer to a release that feels reliable enough for daily listening.
Ocean
Wisdom
Michael
Jackson
Rihanna
Bruno Mars
Chris Brown