Vibe Coding: Practice vs. Theory
This article separates vibe coding hype from fact and outlines practical considerations for using AI tools to develop digital products or services.
If you’ve been paying attention to AI in web design and digital product development, you may have heard of ’vibe coding’. It’s a contentious topic with two general schools of thought:
- Vibe coding is AI slop. It creates horrible code that cannot accomplish basic tasks.
- Vibe coding will let you create huge, complex software projects in hours.
As with most AI-related topics, the truth lies somewhere in the middle. Let’s break down what vibe coding is and whether it is viable to vibe code your next project.
Vibe Coding in Theory
Vibe coding is a term coined by AI researcher Andrej Karpathy in 2025. It describes the workflow to ‘code’ projects by guiding an AI assistant to generate code conversationally rather than by writing it line by line.
The promise of AI coding means that I, a coding novice, could use something like Claude Code to build entire projects simply by explaining the goal to an AI agent. In theory, this opens the world of web and product development to anyone, regardless of coding skills.
However, even in the best-case scenario, you must explain your project with as much specificity as possible. People unfamiliar with software or website architecture will likely struggle to do this without significant research or getting advice from someone more experienced.
Here is an example prompt I used to create an expense tracker app:
“Build me a full-stack expense tracker app. It should have a React frontend where I can add, edit, and delete expenses with categories and dates. Use a Node.js/Express backend with a SQLite database. Include a dashboard with charts showing spending by category and a monthly summary.”
The sales pitch says that Claude Code should write all of the front-end and back-end code, configure my database, install the dependencies, wire the pieces together, and package it up for me to run.
Sounds perfect. And if it worked like that, we’d all be out of jobs. However, the reality, at least for now, is quite different.
What Is Vibe Coding in Practice?
However, if you try to incorporate vibe coding into real-world production scenarios, you’ll quickly run into issues. For example, I ran my prompt through Claude Code and in a few minutes, I did have a (mostly) functional expense tracker.
However, there were three main things about the tracker that were off:
- I assumed (wrongly) that asking for expense categories would allow me to configure these expenses out of the box.
- The expense tracker was not fully responsive, which means mobile users would likely have problems with it.
- The UI is workable, but it isn’t great. The good news is that other than a cornucopia of contrast issues, the page did pretty well on accessibility for a first pass.
Those aren’t huge issues, and with just one more prompt, Claude Code was able to add the category configuration functionality fairly painlessly.

So far so good. But I did not run this application through its paces, so I could not tell you if it can survive significant stress tests. As a novice programmer, I would likely struggle with those tasks. That is the danger of vibe coding as a non-technical person. You cannot fully assess the code.
And even if you can, fully handing off your next project to vibe coding necessarily comes with some limitations.
Limitation 1: Barrier to Entry
Above, I described a vibe coding prompt to generate an expense tracker. Even simple prompts require a baseline level of technical knowledge to achieve meaningful results.
Even though vibe coding breaks down barriers to entry, it does not eliminate them. The most effective vibe coders will already understand the systems they want AI to build. In other words, if you don’t fundamentally understand common web or product design and development processes, you will quickly run into roadblocks.
Limitation 2: Going Awry
If you use AI tools, you’re probably well aware of the challenges that hallucinations present. Eventually, you will run into similar issues with vibe coding.
Here’s an example:
Someone I know was vibe coding a fairly simple feature that they could have coded on their own with little trouble. However, they wanted to use AI as a learning opportunity.
They input a prompt and Claude Code created something that initially seemed viable. Next, they prompted the AI to write several test cases that the program passed.
However, when they tried to use the feature, it didn’t work. In reviewing the code, they found that the AI had written an error exception that allowed their non-functioning program to pass tests it should have failed. Instead, it generated fake data.
For learning purposes, they tried to get Claude Code to fix the test cases by removing the exceptions. Unfortunately, after several hours of trying, it simply wouldn’t. Moreover, they couldn’t get it to fix the code either.
To quote them, “Claude stole my time, my sanity, and my tokens.”
Limitation 3: Scale
The issue of scale in vibe coding has two dimensions:
- Scope: AI coding tools perform best when tasks are heavily scoped. This means using AI to shortcut repetitive or tedious work, like coding singular functions, while piecing them together by hand. Tools with codebase access also tend to work better when that codebase is small.
- Error magnification: Small hiccups with these tools don’t stay small. At scale, minor issues get amplified, meaning the larger or more complex the project, the more pronounced any limitations or mistakes become.
Primary takeaway: AI is not going to fully manage complex codebases anytime soon. Human oversight will remain a necessity.
“…although AI generates code fast, it often breaks under real conditions, and systems appear flawless until they fail. When these code malfunctions occur, the AI responsible for their creation often fails to provide an explanation. Teams then find themselves staring at long chains of errors created by code that only looked correct.”
The Messy Cost of AI Code, Kolawole Samuel Adebayo, Forbes
Vibe Coding Risks
Even understanding the inherent limitations of vibe coding doesn’t adequately convey the risks associated with it.
These risks are a flip side of the creative debate regarding AI art. AI can create art that is convincing, but what looks decent at first blush often shows itself to be unconvincing with a deeper look. However, while art is subjective, code isn’t.

Security and Technical Debt
Next, a study from CodeRabbit showed that entirely AI-generated code creates significantly more technical debt when compared to human-generated code. The areas in which AI underperformed humans were expansive. Technical debt can bring up all sorts of problems, including security vulnerabilities, accessibility issues, usability errors, and data privacy leaks, to name just a few.
Technical Debt
Related content: This article explains how technical debt increases organizational risk and undermines resilience, security, privacy, and long-term sustainability.
Legal
Large language models are trained on essentially the entire open internet. And much of the internet is inaccessible. For example, WebAIM says that 95.9% of the homepages they scan in their annual study have WCAG 2 failures.
Plus, the world of data privacy regulation is changing quickly as well.
It makes sense that these tools will generate code that mirrors many of these common failings, and to an inexperienced developer, these may be difficult to catch and difficult to solve.
“96% of developers don’t fully trust that AI-generated code is functionally correct.”
Sonar’s 2026 State of Code: Developer Survey
Accountability
Finally, if you vibe code an entire website with little oversight, no one can truly take accountability for the product. The underinformed vibe coder doesn’t understand website design and development. The AI’s train of thought is functionally unknowable. AI is a black box and this magnifies risk across the full spectrum of product development.
So, should you vibe code your next digital project?
I’ve been fairly down on vibe coding in this article—with good reason. Vibe coding as a standalone, no- or low-touch development practice is simply problematic. AI is not ready to take the reins from human developers for any project where reliability, dependability, and security are priorities.
If you come from a non-technical background and are thinking about coding your next digital project, you should not expect to vibe code a fully functional product to deploy to production.
Even if you somehow manage to produce a seemingly viable product, there is a good chance you’ll run into some issues:
- Security: vulnerabilities that put your product—and customer data—at risk,
- Viability: Bugs that are hard, if not close to impossible, to fix,
- Scalability: A codebase that’s difficult for a human or machine to fix later on.
If you’re a developer, it’s even more complicated.
I have vibe coded a couple of things for my personal use, and they sort of work… nothing I’d deploy or feel comfortable sharing with the outside world. When what you’re making is unimportant, vibe coding can get you ‘something’ without having to invest a lot of time.
— Steve Gavette, Senior Web Developer at Mightybytes
Proof of Concept
When redesigning the Mightybytes website, Steve used vibe coding to create an early proof of concept for the homepage animation. It took quite a bit of work to achieve a production-ready deliverable. However, the process of using AI to prototype ideas helped us quickly learn what was possible, which was genuinely valuable.
“The key point isn’t about different AI tools or approaches. It’s about understanding that AI multiplies whatever rigor you already apply. At low rigor, AI accelerates chaos. At high rigor, AI enhances quality and velocity.”
Vibe coding will destroy your codebase but, you’re probably not doing it, Ariel Perez, Adaptive Alchemist
The AI Development Matrix
An AI development matrix is a fairly straightforward concept. It asserts that the more autonomy you give AI to generate code, the more rigor and human oversight is needed to ensure that the code is of acceptable quality.
For example, using an integrated development environment (IDE) that incorporates AI-assisted autocomplete, like Copilot, is fairly safe because it involves a human at every step. There are few opportunities to end up with garbage.
High-autonomy applications, the true vibe coding tools, require a huge amount of discipline to produce acceptable results. The article quoted above states that “humans must provide architecture, comprehensive specifications, and systematic review processes.”
This seems like a useful framework for using these tools day-to-day. They can improve productivity with fewer issues, as long as someone who fundamentally understands the process the AI is generating code to accomplish is providing oversight.
The Sustainability of Vigilance
This isn’t impossible, but perfect vigilance 100% of the time is. Mistakes will happen. When AI-generated code is put into production carelessly, it creates technical debt that is more difficult to unravel than if there had been a developer who could walk you through their process, even if it was initially flawed.
This is why we advocate for the responsible use of these tools to augment human processes and to use them sparingly to maintain adequate levels of rigor and oversight.
Finally, general ethics and sustainability issues with AI aside, there is a massive question about the sustainability of vibe coding itself hiding between the lines of this article. You can get a lot out of vibe coding. However, while it takes many manual tasks out of our hands, it still asks a lot of us to ensure that our digital products and services don’t get out of control.
Responsible Product Development
Learn more about how Mightybytes incorporates responsible and more sustainable product development strategies to help our clients reduce risk and more quickly meet their business goals.