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 Last.fm 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 🚀


Comments

Leave a Reply

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