Building the Wrong App Taught Me the Right Lesson
It’s a functional music player, without a line of code written by a human.
You can add music files, play and skip tracks, see album art, even get basic playback stats.
I could use it as my only player, if I wanted to.
I can’t code. But I did build this, with ChatGPT leading the way.
Honestly, I don’t know much more about coding than I did before the project started. But I did learn to think through a user experience—where things go and why, and what to sacrifice to keep things simple.
Prepare for things to change midstream
Because the AI space moves so fast, what worked to build software yesterday might not apply today. For example, I built a ChatGPT project with all the governing documents to guide it. ChatGPT wrote code, piece by piece, that I would paste into Apple’s iOS app building software, Xcode.
That worked ok, but was pretty slow.1
Then, partway through the build, ChatGPT’s Codex suddenly appeared inside Apple’s Xcode application. Apple just slapped it right in there. Now you didn’t have to bring code over from ChatGPT. You could just … do stuff … right inside Xcode.
You have to be flexible, because the AI is advancing so fast. It’s like you take off for a trip in a prop plane, and halfway through the flight jet engines just sprout and start firing.
“One-shotting” is mostly hype
You hear a lot about apps being built in a single pass—”one-shotted”—where the AI takes an initial prompt and builds the software in one swoop.
There was no one-shotting my app, that’s for sure.
I spent hour after hour making small updates, running back to ChatGPT with new errors and issues, and correcting code before moving forward. Sometimes I had to take several2 different runs at one issue to resolve it.
We are not in the microwave era of codeless development. Not even the air fryer era.
Vibecoding is in its convection oven era. You can cook up pretty cool stuff, but it’s going to take awhile.
The biggest lesson: focus on small annoyances
A music app was too big a swing. Yes, it works. No, it’s not as good as many existing solutions. It solves no unique problems3.
For most of us, “vibecoding” should revolve around small, specific issues or use cases without a solution.
For example, what pisses me off about modern music is what Spotify is taking from people and artists: intentional listening.
The smaller apps I’m working on now fight that head on. They’ll be tools for contemplation, for intentional listening, and intentional discovery.
A smaller slice, taking on a major annoyance. That’s the key.
Although, compared to, you know, actually writing code, it was super fast. This is how quickly our frame of reference is shifting.
Or seven … or ten.
But creating it still felt really cool.



I love that you’re in the trenches with this, Matt. Thanks for the reports.