Some thoughts on going from an idea to the App Store in one week

Recently, I released a macOS app called SoundSeer to the App Store. It’s a Spotify companion that shows your current song in the menu bar. It also has a couple other conveniences like Next Track, and Copy Spotify URL. I’d like to briefly share how this came about, and how I feel about making my first app from scratch.

How it came about

I suppose I am like Jerry Seinfeld in the sense that I get bothered by life’s little annoyances. To be clear, I don’t hold grudges or let it get to me, but friction in my day-to-day life is a bother, and I do my best to reduce it.

One of those annoyances is this: when I’m in the middle of work, listening to music, I will occasionally hear a great song that I’ve never heard before. Obviously, I can open my Spotify app to see what it is, but I find this disruptive and I’d rather shift my vision a bit to satisfy my curiosity. For some reason, I wasn’t able to find what I was looking for for several years, until I recently stumbled upon SpotMenu.

SpotMenu does exactly what my new app does, namely show the currently playing song and artist in the menu bar.

A screenshot of SpotMenu expanded. Playback controls are visible when you hover over the album cover.

This basically solved my problem, though I found out about some things I didn’t like. For example, it does a marquee animation when the text length exceeds the available width. This is fine, except for the fact that it can use up to 10% of the computer’s CPU time while idling.

The maintainer of the project either ignored the issue or didn’t have time to address it, which frankly, is fine. Maintaining an open-source project is a lot of (sometimes thankless) work. This bugged me though. I had a couple of options: submit a pull request, fork the repository, or start my own project. For a number of reasons, I decided to start my own.

The work begins

And just like that, I was off to the races. I chose the name SoundSeer as a corny pun–you can see the sound. Get it, SoundSeer? I exclusively used Claude Opus as my “copilot” and let me tell you, it made a huge difference.

I had previous experience working on a large iOS web browser at Neeva, but things are quite different when starting from scratch. I had to get familiar with macOS-specific APIs, entitlements, App Store requirements (marketing copy, logos, etc.), and more. I even had Claude draft up a (hopefully) bulletproof privacy policy that would get me through review.

I had a sense of what I wanted–something very minimal that used almost no compute. I did not use any mockup software, I just rapidly prototyped the small app as I went. Eventually, I ended up with this:

A screenshot of SoundSeer’s UI.

I leveraged my almost 2,000-follower base on Threads to spread the word and ask for feedback. I was (and still am) abundantly grateful to the folks who shared, tested, and provided feedback about my app.

Debuting my app on Threads.

Lessons learned

It’s always a much different experience when you build something from scratch vs. maintaining a legacy project at a large company. My big takeaways from this were:

  • Ruthlessly prioritize. I knew that I wanted to ship the app fast to get feedback and iterate. This meant that only an MVP was necessary to ship to the App Store.
  • Think of the user first. This was not a vanity engineering project. I was solving a real problem for myself. Every line of code written was to serve the user experience.
  • Have fun. I honestly can’t remember the last time I had so much fun working on a software project. Using an LLM as my copilot helped a lot, but I also had the freedom to explore my curiosity without worrying about business constraints.

Where to go from here

Now that SoundSeer is on the App Store (another shameless plug), I feel slightly relieved that it is being distributed and tested by external users. I am still working relentlessly to improve the product. For example, I have already implemented instant, efficient visual updates, Open at Login, and dynamic width resizing to fit in the menu bar. Also on the roadmap is Apple Music and support. However, I am taking a bit more time to ship updates now because I want to be confident in the product’s stability.

If I could wrap up this post in one sentence, it would be this: it feels great to build again. I love solving problems (especially my own), and it is such an amazing feeling to receive comments from users telling you that you made something useful.

Onwards 🚀


Leave a Reply

Your email address will not be published. Required fields are marked *