Is "Vibe coding" a shortcut to productivity, or a fast track to spaghetti code?
As AI tools become increasingly integrated into modern development workflows, a new term has been gaining traction in online communities and dev circles: "vibe coding". Popularised by Andrej Karpathy, a prominent AI researcher and one of the founders of OpenAI, the term refers to a style of development where the programmer relies heavily—sometimes almost exclusively—on generative AI tools to produce code from high-level natural language prompts.
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…
— Andrej Karpathy (@karpathy) February 2, 2025
Benefits
I believe there are real, tangible benefits to this approach—especially for experienced developers who understand when and where to apply it.
- Rapid Prototyping: Vibe coding is extremely effective for spinning up MVPs or testing out ideas. If you want to explore a new framework, throw together a POC, or validate a product direction, AI-assisted development can drastically reduce the time to get there.
- Reducing Boilerplate: Nobody enjoys writing the same validation logic or setup script for the hundredth time. Vibe coding is ideal for these repetitive tasks—especially when paired with strong typing or tests that help catch mistakes early.
- Lowering the Entry Barrier: For non-coders or those early in their journey, vibe coding offers a lower-friction way to engage with code. It’s no substitute for a deep understanding of programming, but it can serve as a gateway to learning. Though only time will tell how effective a learning tool it will be.
Downsides
Despite the hype appearing online, there are significant risks associated with vibe coding—particularly when if it becomes a crutch.
We're already seeing AI products woven into most IDEs, so there is temptation to just ask AI to solve a problem rather than figure it out yourself.
- Code Without Understanding: One of the most pressing concerns is that developers may deploy code they don’t truly understand. This makes debugging, optimisation, and long-term maintenance a nightmare. You may get something that “works,” but with unknown tradeoffs, hidden inefficiencies, or security holes.
- Tech Debt Accumulation: Codebases generated by AI can quickly become messy if not curated carefully. Without proper structure, conventions, or refactoring, what starts as a prototype can morph into production code that no one wants to touch.
- Over-Reliance on the Tool: As AI gets better, the temptation to offload more and more responsibility onto it grows. But a good developer knows that tools are only as good as the person wielding them. If we become passive consumers of code rather than active creators, we risk losing core competencies that are critical for building robust systems.
My Thoughts
For me the real question isn't whether vibe coding is good or bad—it’s how we use it. Like any tool, its effectiveness depends on the context, the user, and the problem at hand.
In the near future, we’ll likely see vibe coding become a formal part of dev workflows. Tools like GitHub Copilot, Amazon Q, and GPT-based IDE integrations will evolve from autocomplete assistants into full-fledged collaborators. For many routine or well-scoped tasks, this will be a net positive.
But we’ll also need to develop new norms and practices around how we review, test, and vet AI-generated code. If vibe coding is to have a place in serious software development, it must come with guardrails.