Vibe Coding: The Pros and Problems with AI Software Development
Vibe coding is the art of combining your ideas with AI tools to “feel your way into a new application” by prototyping fast, iterating on the fly, and seeing what clicks. When people use vibe coding with the right parameters and expectations, vibe coding works great!
Problems creep in when vibe coding is used to replace software development, rather than using AI responsibly to assist with the software development process. In a culture that wants results as soon as possible, it can be tempting to jump straight into code building – skipping the tedious parts of the process like requirements gathering, researching, and architecture planning – but those details matter.
What is vibe coding?
Think of vibe coding as:
- Rapidly prototyping with AI (e.g. “Hey ChatGPT, build me a quick UI for a habit tracker”)
- Generating multiple versions of a component to see what works best
- Using AI to code with just an idea, not detailed requirements
Vibe coding is about getting an idea out of your head and into a format you can interact with and show other people. To quote Simon Willison, “vibe coding is for generating code without caring about the code that is produced.”
The pros of AI-powered vibe coding
Vibe coding is great for exploring new ideas, and may even work to create a simple, usable application for one person or one specific function.
1. You’re not a programmer, but you have an idea
Even if you’re not a software developer, you can use AI to generate ideas that you can show others to get their buy-in or critique of the concept.
2. Fast prototyping
You may be a programmer, but at this point, you’re just exploring options. You can go from concept to prototype in hours (sometimes minutes). This is huge when you’re still figuring out what the app *is*.
3. You want a quick answer
You don’t want to figure out how to move an image to the right side, you just want to copy and paste code to make it happen. Vibe coding is perfect for that.
Not quite vibe coding
AI can also be used to assist with software development by programmers who actually do care about the code. While these efforts are often conflated with vibe coding, these examples would more accurately be considered “AI-assisted software development. Many software developers (including us) use AI for:
1. Easy experimentation
Want to try three different approaches to the same feature? Ask your AI programming tool to build all three. Vibe coding makes it easy to explore your options.
2. Simple, low-level coding
AI works great when you want to write simple functions. We recommend that when you add assumptions, you also rebuild the function to be sure your code is solid and it hasn’t forgotten or isn’t competing with prior assumptions.
3. Unit testing
You can use AI to build unit tests – as long as the same AI hasn’t been used to build the code. That’s because if you made faulty assumptions to build the function, you might make the same mistakes in the testing process.
When vibe coding breaks down
Vibe coding can be a great way to start a project and explore “what’s possible” but often it is impractical and risky to use in a multi-user production environment.
1. Not understanding what’s real or practical
“How do you get pepperoni to stick to a pizza? SUPER GLUE.” When jokes like these become part of the AI language model you are using, you may get nonsensical answers. AI has given answers about the population on Mars, due to taking in science fiction content. Someone needs to build prompts and validate the output based on real life scenarios.
2. Missing the big picture
Vibe coding is great for the “what if we tried this?” stage. But eventually, you need to deeply understand real user needs, architecture, edge cases, security, etc. We recommend you use vibe coding as a discovery tool, then switch into “real” software development once the application direction is clear.
3. Missing the details
Regardless of how your code is developed, someone needs to understand the business processes and workflows. Skipping the requirements gathering phase means that a process may work in many cases, but not the exceptions (and most businesses have to accommodate exceptions.)
For example, calculating shipping rates may seem straight forward, until you consider state and local taxes, orders from external systems, back orders, combined orders, and the like. By definition, vibe coding isn’t the right fit for complex scenarios.
4. Operating outside of IT
Vibe coded applications are often built by business users, which means they largely operate outside of policies and procedures set by the IT department. No clear architecture and lots of quick AI-generated code means you can end up with something that “works” but is hard to scale or maintain. The application may present security or compliance concerns. We’ve seen a few cases where a “small app” suddenly gets picked up by the department and populated with thousands of records, creating a performance bottleneck (among other problems).
5. Missing coding expertise
If you’re always saying “yes” to the AI ideas, you might end up with code that doesn’t fit your actual goals or design principles. Treat AI like a junior dev with great autocomplete—not as a decision-maker. Trouble shooting AI code isn’t always easy – especially if you have no programming expertise. You can end up in code loops, where you keep getting errors and you don’t know why.
Even experienced software developers can have trouble remembering, “What was I thinking? Why would I write it that way? Why am I getting an unexpected result?” When users don’t understand coding or data architecture, the results can be unreliable.
When to use vibe coding
- When you’re exploring a new app idea or feature.
- When you’re stuck and need to try a different angle.
- When you want to demo a concept without investing in full dev cycles.
- When speed > polish in the early stage.
And when **not** to use it:
- When you need solid performance, security, or scalability.
- When you’re working in a high-stakes production environment.
- When team collaboration or documentation is key. (Vibe coding is often solo and fast-paced).
- When you don’t have enough source material. When your is new or unique, there may not be enough data to train on. For example, AI is good at programming in Python, but not so good at programming in Green (a new, more obscure programming language.)
Final thoughts
Vibe coding with AI is a bit like improv—you don’t always know where it’s going at first. It’s a powerful way to explore ideas quickly, get out of your head, and let the *code itself* tell you what works. Just remember: once the vibe gives you clarity, the next step is to slow down and build it right.
We recommend using AI to explore ideas—then engineer with intent.
Need help with an app?
Want help using AI to vibe out your next app idea? Or want to turn a prototype into a scalable app? Our team would be happy to help you through the process of building a custom application for your business. Let’s chat!
Frequently Asked Questions
What is AI vibe coding?
Vibe coding is a programming approach that uses AI to generate code from your prompts, allowing you to develop software without traditional coding experience.
How do I vibe code?
Vibe coding can be done with AI tools to help generate your code from natural language descriptions. You choose your AI tool, start simple describing your project, iterate and refine.
Can ChatGPT vibe code?
Yes. ChatGPT and other AI services can take your natural lanuage and act as a software engineer to build the apps for you.