Table of Contents
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. It actually does very little, but it does it well. 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 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 #
The prompting process was interesting. 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. 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 hope in the future to make this an iOS app that I can stream from as well. It’s written in Swift, so it’s possible.
This did help me understand how macOS engineers write code, and it was neat for me to get to see how the files changed over time. I also made some changes in code myself.
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.