Back
EssayAug ’252 min read

A vibe is a prototype

This year vibe coding went from a weekend joke to a business model. Designers can build now. The new risk is shipping the vibe.

A vibe is a prototype until someone has walked every state. That’s the rule I’d take from this year, the year designers got tools that can ship software from a sentence.

In February, Andrej Karpathy described “vibe coding”: you describe what you want, accept what the model writes, and stop reading the code. He meant it for throwaway weekend projects. Within months it was a business model. Figma launched Make, prompt to working prototype, at Config on May 7. Claude Code became generally available on May 22. In July, Lovable said it had passed $100M in annual recurring revenue, eight months after its first million.

A designer can go from an idea to something running, with real data and real states, in an afternoon. For anyone willing to open the code, the handoff is becoming optional.

The risk used to be that designers couldn’t build, so their intent got lost in translation. This year it flipped: designers can build, so a vibe can ship.

A vibe-coded prototype answers “does this feel right?” very well. It answers “does this hold up?” badly. What happens with no data, or too much? When the network drops, or someone hits back halfway through? The model will write something for each of those. It won’t tell you whether that something is right, and it won’t stop you shipping it.

So the designer’s job moves into behavior: deciding what should happen in every state, and checking that it does.

Engineers built tools for this long before the prompt box. Uber Studio, the tool I redesigned for Uber’s engineers, had a Stub tool that replaced any service’s response with one you wrote, so you could make a dependency fail and watch what the product did. Designers need the same habit, with or without the tool.

Prototype as fast as the tools allow. Throw away the first direction even when it works, because working is no longer evidence that it’s good. Then, before anything reaches a customer, slow down and walk it: empty, loading, error, undo, the long name, the slow network. Write down what should happen in each, and check that it does.