
The Vibe Coding Cliff
The vibe coding cliff is the moment the magic stops: when steering by intent and momentum no longer holds a system together and the LLM cannot keep the rising complexity in the air. It is the point where the vibes run out and real engineering has to step back in.
The vibe coding cliff is the point where conversational, momentum-driven coding stops being enough. Up to a certain complexity, you can just describe what you want and let the LLM carry you. The cliff appears when the system gets large enough that intent alone cannot hold it together as technical debt has risen above the LLM's capability. At that point you need structure, architecture, patterns and guardrails again.
In our previous post on what is vibe coding, Karpathy outlined the power of vibe coding but also hinted at its limitations. For anyone unfamiliar, Karpathy is one of the most influential thinkers in modern AI, having helped shape deep learning at OpenAI and later led AI at Tesla. When he comments on how we build software, the industry pays attention. Here is his original post on X.
Karpathy’s description of vibe coding includes several signals that the cliff exists.
“The code grows beyond my usual comprehension, I'd have to really read through it for a while."
Every developer knows this feeling. Things are going great, momentum is high, and then suddenly the codebase becomes a forest you no longer recognise. Karpathy’s line captures the moment when the improvisation of the LLM outpaces both your mental map and its own internal consistency. When the code grows beyond comprehension, it signals the complexity wall. The system expands into layers and patterns that no one, human or LLM, is actively maintaining. Vibe coding thrives on flow, but complexity thrives on structure, and this is where the two collide.
“Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away."
This is the reliability wall. When vibe coding works, it feels effortless. You describe a problem, the LLM fixes it, and the flow continues. But when it breaks, it breaks in a very specific way. The LLM loses the thread, offers patches that do not quite land, or produces a fix that creates another issue elsewhere. Karpathy’s habit of asking for random changes is both funny and familiar. It shows how momentum can turn into fragility. The LLM can handle surface issues, but once deeper structural problems appear, vibe coding shifts from clarity to guesswork.
“It's not too bad for throwaway weekend projects"
This line brings the cliff into clear focus. Weekend projects are perfect for vibe coding. The goals are flexible, the stakes are low, and the lifespan is short. Nothing needs to be maintained or scaled. But as soon as a project becomes something durable, something that must evolve predictably or be handed over to others, vibe coding alone begins to struggle. The cliff emerges not because the approach is flawed, but because longevity demands discipline. Without that discipline, even promising projects can collapse under the speed that made them fun to build in the first place.
So, what about the human in the loop?
This is the part that matters most. Vibe coding does not remove the need for human oversight. It amplifies it. A skilled human in the loop can push the cliff much further out by continually steering the project toward quality, coherence and maintainability. They do not fight the vibes. They guide them. They review patterns, enforce structure and intervene before technical debt becomes structural collapse. And that matters, because technical debt is inevitable. No LLM can stop entropy from creeping into a living system. What the human provides is the judgment that keeps the debt at manageable levels. With the right guardrails and oversight, vibe coding can take projects far deeper than anyone expected before the cliff appears. But the cliff is always there, and recognising it, and designing for it, is how you stop the project going over the edge.
The LLMs will keep improving, but balance still matters
LLMs will continue to get better. They will reason more effectively, follow intent more precisely and recover from their own mistakes with far less drama. Many of the rough edges that shape the vibe coding cliff today will soften. But improvement does not remove the need for balance. This is where technologies like CodeBots make a real difference. By combining the creativity and speed of LLM driven development with structure, governance and shared architectural patterns, you end up with a workflow that stays fast without becoming fragile. And with the upcoming release of ChatStudio and our work on vibe modelling, that balance becomes even more natural. You will still code with intent and momentum, but you will do it inside a system that keeps the quality high, the architecture coherent and the cliff much further away than it would otherwise be.
The original quote (full context)
"There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away. It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works." Andrej Karpathy.
Discover More
What is Vibe Coding
Vibe coding is the moment software development stops feeling like manual labour and starts feeling like momentum, steering with intent while the LLM handles the grind, keeping developers in flow rather than lost in files.

The Codebots Diagram Engine
The Codebots Diagramming Engine powers automated, standardised system modelling, reducing technical debt. Developed by Scott Lanham, it supports UI, logic, and database models by defining clear relationships between shapes and connections. Ongoing improvements, including enhanced visuals and markdown integration, ensure scalable and maintainable software design.

Platform Engineering and 27001
We recently achieved our 27001 certification! For anyone that has been on this journey, you will know how difficult a task this is. In this article, we discuss the road we took and how applying platform engineering saved the day.