Vibe coding means asking an AI tool for software and accepting the code it writes without reading it. For an app that customers depend on, it leaves out the work that took most of Countstead's 58 days.
Andrej Karpathy coined the term in February 2025. He described accepting every change the AI made without reading the diffs, and called the approach "not too bad for throwaway weekend projects". We agree: it is a quick way to try an idea or build a tool only you will use.
Countstead was built with AI agents too, and their work was checked. Each piece of work started as a written plan, separate agents reviewed the plans and the changes, and every release build had to pass the full automated test run. One review round found two database operations that could deadlock each other, and the fix went in before the change merged. With vibe coding, nobody looks for problems like that.
Building with agents still takes a software expert: someone who makes the correct technical choices, can tell when an agent is wrong and steers it in the right direction, instead of blindly accepting everything it writes. The deadlock is an example: a person saw a problem in the app's telemetry, had the agents write a fix and asked for the fix to be reviewed, and that review caught it. Making the app offline first was another, fixed in the specification a day before the first app code was written.
Vibe coding does nothing for the parts of Countstead that were never code: the product decisions, testing on a real iPhone and the App Store Connect setup.
An app keeps changing after launch. Countstead had ten updates in its first seven weeks. Changing an app that often without breaking it takes someone who understands the code. Karpathy wrote that, working this way, "the code grows beyond my usual comprehension".
If your app will hold customers' data, take payments or go on the App Store, someone who knows what to check should read and test the code before it ships.