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.
So I built an app that does exactly what I want with Claude. It actually does very little, but it does it well and looks great while doing it. Things like:
- Auto-adding from a folder.
- Rdio-inspired Now Playing view (RIP).
- Theme the app according to the record I’m enjoying at the moment.
- Keyboard shortcuts (I’m also a heavy keyboard shortcut user).
- Lyric downloads.
I spent a lot of time on polish, especially because theming was important to me. That meant the icons and buttons needed to be tinted just so, and it needed to match the vibe of each album. Further, each view needed a little different attention. I didn’t like the default macOS table views, so I tweaked those to give the songs a little more breathing room.
The Now Playing experience was cued off of the album art. I needed to make sure I wasn’t applying a global tint, if a theme was active here. Something I always enjopyed was how the record I listened to had a visual theme, and I did my best to translate that here.
I didn’t include metadata editing here, as I actually built another app for that was a little too much for my intentions on building this app.
Challenges #
I spent a fair amount of time in Figma designing the app, getting my idea just right. Once I felt like I had enough of a direction, I instructed Claude (Opus 4.7) to map out what I needed. 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.
It tried hard to match exactly what I said, even when that meant overriding Apple’s Human Interface Guidelines (HIG). It failed several times to build some of the visuals I’d designed and described, even when I pointed it to the HIG itself or described an interaction more in depth.
It also couldn’t make the full-screen experience I wanted, but I discovered independently that what I wanted isn’t possible–Apple hasn’t solved it either. (See Weather’s full-screen mode as of macOS 26…it isn’t clean, either.) So I pulled the full-screen behavior entirely.
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:
- There are a lot of fun little microinteractions I’d like to add.
- AirPlay support.
- A CoverFlow-style browsing experience.
- Update the playlist experience for better art.
I don’t have any plans to release it publicly, 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.