The real story of vibe coding isn’t being told

The “I built an app in an afternoon” narrative is everywhere. What it leaves out is the part where the app actually has to work. Scroll through any tech-adjacent feed…

The “I built an app in an afternoon” narrative is everywhere. What it leaves out is the part where the app actually has to work.

Scroll through any tech-adjacent feed right now and a pattern emerges. Influencers are posting about AI with a particular kind of confidence — not just that the tools are impressive, but that it’s so good that expertise itself is becoming optional. The posts imply that the work of engineers, designers, product thinkers is being absorbed into the prompt. Not just absorbed. They imply, if not outright say, that a single, simple prompt allows AI to think through what those folks would do on behalf of the builder.

The technology is genuinely extraordinary. That’s not in dispute. But there’s a gap between “AI is a powerful accelerant” and “AI replaces the human judgement behind the work.” And a lot of what’s being published skips right over it. The nuance doesn’t get clicks, and doesn’t serve the influencer’s motives, so the nuance doesn’t get written.

It’s not just in coding that this is happening. Tech press is full of stories of how AI can replace a marketing team, a lawyer, a bookkeeper, a writer, the list goes on. Vibe coding is a good lens through which to examine this phenomenon.

The story that keeps getting told

Spend enough time in tech circles right now and you’ll hear some version of this:

The popular narrative

“I had an idea, I described it to an AI, and in twenty minutes I had a working app. I didn’t write a single line of code myself.”

This story is told triumphantly, and I understand why. It is genuinely impressive. The friction to go from idea to something-that-runs has dropped dramatically. That’s a meaningful shift, and as a non-coder myself I appreciate the wonder of being able to describe an app and have it materialize out of thin air as working code.

But the story is glossing over a lot.

What “working” actually means


The resulting app works…in the demo. It handles the happy path: the prompt the builder had in mind, the usage pattern they tested while building it.

That’s a very different thing from working. As a longtime Product Manager, I know how much happens between an idea and code that works for real. Code that works when other people get their hands on it, lots of them at scale, using it in ways that make sense to them and which we didn’t anticipate.

Scalability


Unless deliberately designed otherwise, vibe-coded apps are architected for the use case the builder imagined, not the load or data volume real users bring.

User Needs


Building fast doesn’t substitute for understanding what people actually need.

Edge Cases


Real users do unexpected things. Inputs that weren’t imagined, sequences that weren’t tested, states that weren’t anticipated.

Rigorous Testing


AI-generated code isn’t magically correct. It can be subtly wrong in ways that only surface later, under conditions you didn’t test.

The parts that don’t get automated away

Architecture still matters. If you’re building something that needs to scale, hold real data, or integrate with other systems, someone has to think through how the pieces fit together. AI can help you implement an architecture, if you know to ask for it, but it doesn’t replace the judgment required to choose one.

Experience design still matters. End-to-end use cases are discovered by talking to users and thinking carefully about what they actually need, not by generating code quickly. Moving fast through the build doesn’t eliminate the need for that work.

Testing still matters. Not the kind of testing where you click around and decide it looks fine; the kind where you systematically probe what can go wrong, what edge cases exist, what happens when the system is under stress or given bad input. This is where a vibe-coded app can easily fall over.

On the over-confidence problem

The issue here isn’t the technology, it’s the discourse around it. There’s a part of the vibe coding conversation that is genuinely useful — it unlocks a new class of builder, lowers barriers, accelerates prototyping. This is all goodness and it should be talked about.

The part that ignores the complexity and implies that expertise is no longer necessary isn’t being fully honest.

AI is not magic. It’s a very powerful tool that makes some things dramatically easier and leaves other things unchanged. The judgment calls, the architectural thinking, the user empathy, the rigorous validation are still there, still necessary, still skilled human work. At the end of the day, AI only does what we ask it to do. It still needs a human to think through what needs to happen.

The builders who will get the most out of vibe coding aren’t the ones who treat it as a replacement for thinking. They’re the ones who use the accelerated build cycle to think faster — to test hypotheses quickly, iterate with real feedback, apply their judgment to the parts that actually require it. And most critically, remember that an app isn’t done done done until it can handle the rigors of real usage.

That’s a different story than “I built it in twenty minutes.” It’s a better one: one that’s more realistic, doesn’t scare-monger, doesn’t over-promise, doesn’t pretend that human judgement is no longer a factor. It’s still the only factor that matters.