Vibe coding is simple, but not easy
A friend built a booking app in one weekend with AI and decided building apps is simple now. Two weeks later, he met the rest of the iceberg.
A friend who runs a small spa called me on a Sunday night, very excited.
"I built an app. By myself. In one weekend."
He had never written a line of code. He described what he wanted to an AI tool, and it built a booking app for him. Customers could pick a service, choose a time, and get a confirmation. It looked clean, it worked on his laptop, and it cost him less than a dinner out.
"Why did people ever pay agencies thousands of dollars for this?" he asked. "Building apps is simple now."
He wasn't wrong to be excited. What he made in a weekend would have taken a small team weeks, not long ago. But I've seen that excitement before, and I know what usually comes next.
The part above the water
That style of building has a name now. Andrej Karpathy named it vibe coding: you describe what you want, the AI writes the code, and you mostly go with the flow. It's fast, it's fun, and the first version can look better than anything most people have ever built.
That first version is the tip of the iceberg. It's the part everyone can see.
The part below
Two weeks later, my friend called again. Less excited this time.
Two customers had booked the same time slot. A customer forgot his password, and there was no way to reset it. The app looked broken on older phones. Someone typed an emoji in their name and the confirmation email never arrived. He asked the AI to fix one bug, and two other things stopped working. And when I asked where the customer data was stored and whether it was backed up, he went quiet.
None of that was visible in the demo. All of it was waiting under the water:
- Edge cases. Real people do things no demo ever tries.
- Security. Logins, passwords, and customer data that must not leak.
- Reliability. Backups, monitoring, and knowing something broke before your customers tell you.
- Change. Every new feature has to fit with everything already there, without breaking it.
- Understanding. When nobody really knows how the code works, every fix is a gamble.
This is the work experienced engineers spend most of their time on. It's not glamorous. It doesn't show up in screenshots. But it's the difference between an app that demos well and an app people can trust with their Saturday morning booking.
Simple, but not easy
Vibe coding makes building simple. You describe it, and it appears.
It doesn't make building easy. The hard part was never typing the code. It was thinking through everything that can go wrong, and caring enough to handle it. AI made shipping the easy part. The hard part is still yours.
Build anyway
I don't want anyone to read this and stop building. The opposite.
Vibe coding is one of the best things to happen to people with ideas. Build the prototype. Test your idea with real customers. Show it to an engineer instead of trying to explain it in a meeting.
Just know what you're looking at. The weekend version is the beginning, not the finish line.
Enjoy the tip. Respect the iceberg.
Keep reading
More from the notebook.
Praying to the servers
An index that froze the orders table, a shrine for praying while we waited, and why the best server prayer is the one nobody has to say.
The age of personal software
In school, I built a tiny exam schedule app that almost every student on campus used for a couple of days. Then life got busy. Now AI is giving builders their weekends back.