For early as I can remember, music was a part of my life. I grew up playing piano, then guitar. Music provides an escape on hard days, a creative outlet when making it, and makes meaningful moments more poignant. I also have an iPod that I won’t ever give up on, too.
I was one of those kids who would organize their CDs, first physically, then digitally, ensuring I had highest resolution album art cover possible for my collection when I ripped my CDs onto my computer.
And I’ve used Apple’s iTunes (now just known as Music) since early days. But the songs I’ve collected and purchased from sites like Bandcamp aren’t always compatible. I’m also disappointed with the app’s bloat and over-focus on streaming.
I spent lots of time thinking about what I wanted a music experience to be (and not to be). My vision was to focus on a great listening and browsing experience and start from there. I looked at my iPod, how focused it was, and thought about replicating that with an app. Then I designed it and took it to Claude.
What I Love #
The app is lean, which has let me focus on making what’s there as great as I can. I’ve spent a good deal of time perfecting it since my first version in August 2026. (The most recent version was finished in October 2026.)
- A good home for music. The app recedes so I can enjoy the album art. I can pinch to get them just the right size, and each album’s details are themed off that record, so they feel cohesive.
- A cozy listening experience. Now Playing takes its look from the album art, and the controls get out of the way until I need them. Lyrics and the track list are there if I want them.
- A good playlist experience. Adding a song to a playlist is a click from anywhere a song appears, and I can rearrange a playlist however I like.
- Smaller things: auto-adding from a folder, keyboard shortcuts, and gestures (I’m big on those).
How it came together #
Initially, I spent a fair amount of time designing this in Figma, getting my idea just right. I sent it to Claude (Opus 4.7) to map out the rest.
I had certain parameters, such as no external calls or libraries unless absolutely necessary, and to use native components where possible so as to not rely on something custom that would be difficult to maintain later.
Challenges #
I have a decent understanding of Apple’s Human Interface Guidelines. Claude strayed from them several times and those decisions caused a lot of rework since it wanted to build things a certain way. Pointing it back to the HIG helped.
In 1.0, it couldn’t build the full-screen experience I wanted. I thought it wasn’t possible, since Apple hadn’t solved it either as of macOS 26 (see Weather’s full-screen mode). It wasn’t until I was rearchitecting the app with Opus 5.5 that I solved it, and full screen is back in 2.0. The fix had to do with changing out the view controls and some of the audio player elements.
Claude also tended to build views that were hard to animate. Toggling the sidebar made the albums view hiccup, because the screen rebuilt itself, regrouping my entire library, on every frame of the slide. After some debugging, we changed how things were rendered, which fixed it. I made several videos and screenshots and provided references, it got sorted out.
What’s Changed #
It’s grown considerably since the first version in August 2026. Since then, I’ve:
- Moved theming from a global theme keyed off one album to the album detail and Now Playing views.
- Given Now Playing smarter controls that get out of the way.
- Made the album layout resizable with pinch and swipe gestures, and added touches like a live equalizer on the playing song.
- Made playlists much better: you can add songs or drag them around from anywhere.
- Smoothed out every transition and interaction.
- Rearchitected the app to support full screen.
What’s Next #
I plan to make an iOS app and to set up a streaming server to have my own Apple Music replacement. It’s written in Swift, so it’s possible. Some other goodies:
- Importing playlists from other services.
- Generating playlists based on BPM and what I’m doing, like working out.
- A CoverFlow-style browsing experience.
- Support for liner notes and other album art assets.
I don’t have any plans to release it publicly unless enough people ask me about it, because I built it for me. Which is something I find fun and a little addicting about working with LLMs: just building a lot of bespoke software that really only matters to me.