Built an iOS client for Navidrome because I couldn't find my own music anymore
If you're into private tracking (PT), you probably know Navidrome. I've been using it for a while, but the iOS experience always felt a bit… off.
I've tried the official client and a few third-party ones. They mostly just play music. Once your library gets past a few thousand tracks, browsing becomes a pain.
I have all my music right there on my server, but digging out the songs I actually want to listen to is surprisingly hard. Some tracks just get buried and never see the light of day again.
After thinking about it, I realized the core issue: my music wasn't being managed with any real structure.
So I decided to build my own iOS client. Took me about two months, working on and off. Written natively in SwiftUI.
The key idea? Forget recommendation algorithms (they don't really work for local libraries anyway). Instead, I built it around a tag system:
Every track can have multiple custom tags (quality, mood, scene, etc.)
Want to listen to something specific? Just filter by tags.
The app adapts based on your listening habits over time
Automatically generates playlists that match your current vibe
The way I use it now feels completely different. I'm no longer scrolling through endless lists trying to remember a song exists. Instead, I step into different "musical spaces." Want something energetic? Something chill? Something with great recording quality? Tap the tag, and there it is.
Screenshots below (the data is from my own server, just for demonstration).
If any of you are also running Navidrome and feel the same pain point, I'd love to hear your thoughts. Does this approach make sense to you?
The app is already on the App Store. If you want to give it a try, feel free to DM me.


Replies