Vibe Coding Explained: What It Is, Where It Breaks, How to Do It

Vibe coding means building software by describing what you want to an AI and going with the flow. See where it works, where it breaks, and how to do it well.

Vibe coding is building software by describing what you want to an AI in plain language, accepting what it produces, and steering by how the result looks and feels rather than by reading the code. It’s fast, fun, and great for prototypes. It also breaks in predictable ways once a project grows, which is why the people who do it well add a few lightweight guardrails.

Here’s what vibe coding is, where it falls apart, and how to keep the speed without the mess.

What vibe coding means

The term was popularized by AI researcher Andrej Karpathy to describe a style of programming where you go with the flow: you talk to an AI tool, let it write the code, run the result, and ask for changes when something’s off. You rarely open the files yourself.

In practice it looks like this:

  1. You describe an app: “a habit tracker with a calendar view and streaks.”
  2. An AI tool, often a coding agent, builds it.
  3. You try it in the browser.
  4. You say what’s wrong: “the streak resets at midnight in the wrong timezone.”
  5. The AI fixes it. Repeat.

You’re acting like a product owner, not a programmer. The code is a black box you judge by its behavior.

Why people love it

  • Speed. An idea can become a working prototype in an afternoon.
  • Low barrier. Non-programmers can build real tools. See AI agents for non-programmers.
  • Exploration. You can try three versions of an idea before committing to one.
  • Fun. It feels like describing a dream and watching it appear.

For throwaway projects, personal tools, demos, and game jams, pure vibe coding is often exactly right.

Where vibe coding breaks

The problems show up as projects get bigger, live longer, or start handling real users and data.

The codebase becomes a maze

Each change is made without a plan for the whole. After enough rounds, you get duplicated logic, dead code, and features that work by accident. Eventually, a fix for one thing breaks two others, and the AI starts going in circles.

Nobody can verify it

If no one reads the code and there are no tests, “it seems to work” is the only check. Edge cases, like empty inputs, slow networks, or unusual dates, quietly fail.

Security gets skipped

AI tools can produce code with real security problems: exposed secrets, missing permission checks, or unsafe handling of user input. If you’re not reviewing, you won’t notice until it matters.

Context runs out

Long, meandering sessions lose track of earlier decisions. The AI forgets why something was built a certain way and “fixes” it back.

You can’t hand it off

A project nobody understands is hard to maintain, extend, or pass to another developer.

Vibe coding vs structured AI coding

You don’t have to choose between pure vibes and writing everything yourself. There’s a middle path.

Pure vibe coding Structured AI coding
Instructions Loose, conversational Short briefs with a finish line
Verification “Looks right” Tests and checks the AI runs itself
Changes Whatever the AI decides Scoped tasks, one at a time
History Rarely saved Version control, small commits
Best for Prototypes, toys, demos Anything you’ll keep or share

Structured AI coding still feels fast. You just add a little process where it counts.

How to vibe code well

These habits keep the speed and fix most of the breakage.

1. Use version control from minute one

Save a snapshot (a git commit) after every working step. When the AI breaks something, you roll back instead of untangling it. Most coding agents can make commits for you if you ask.

2. Describe features, then finish lines

Instead of “add login,” say “add login; done when a user can sign up, log out, log back in, and a wrong password shows an error.” A clear finish line turns a vibe into a target. Our guide on how to write a brief an AI coding agent can actually finish has a template.

3. Ask for tests, even if you never read them

You don’t need to understand the tests for them to protect you. Ask the AI to add tests for each feature and to run them after every change. When something breaks, the tests catch it before you do.

4. Keep sessions short and focused

One feature per session. When a session gets long or the AI starts looping, start fresh with a summary of where things stand.

5. Keep a project notes file

Write down key decisions, like “we store dates in UTC” or “use the existing button component,” in a file the agent reads each session. It stops the AI from undoing past choices.

6. Ask for a cleanup pass

Every few features, ask the AI to review the project for duplicate code, unused files, and confusing structure, then tidy up while keeping the tests green.

7. Get a second opinion

Have a different AI model review the code for bugs and security problems. Different models catch different mistakes. Our article on AI code review and testing goes deeper.

8. Know when to stop vibing

If the project will hold real user data, take payments, or run for years, bring in more rigor or a human developer for review. Vibe coding a prototype is great; vibe coding your production payment system is not.

Vibe coding with a team of agents

A useful trick is to keep the vibe for yourself and push the discipline onto the AI. You describe what you want in plain language; the agents handle the briefs, tests, and reviews.

That’s how BotQuarters works. You give a goal to a team lead agent, which splits it into scoped tasks, assigns them to teammates, and runs your project’s tests and checks itself. Work that fails goes back to the desk until it passes, and you approve the final report. You still steer by how the result feels, but with a safety net underneath.

FAQ

Is vibe coding bad?

No, it’s a tool with a sweet spot. It’s excellent for prototypes, personal tools, and experiments. It becomes risky for long-lived software or anything handling sensitive data, unless you add version control, tests, and some review.

Can you build a real app with vibe coding?

You can build a working app, especially a small one. Keeping it working as it grows is the hard part. Adding tests, small commits, and periodic cleanup turns a vibe-coded prototype into something you can actually maintain.

What tools are used for vibe coding?

Any AI tool that can write and run code works, from chat assistants to coding agents like Claude Code, Codex, or Gemini CLI. Agents are especially suited to it because they can edit files and run your app or tests directly.

Do I need to know how to code to vibe code?

No, that’s much of its appeal. But a little understanding goes a long way: knowing what version control and tests are, and being able to describe bugs precisely, will make your results far more reliable.

CEO of BotQuarters

Writes about AI agents, AI teams and getting real work done with them. BotQuarters turns a team of AI agents into a company you can watch at work.

Keep reading