1. Blog
  2. Vibe coding

What is vibe coding? A plain-words guide, and where it goes wrong

Vibe coding means building software by describing what you want to an AI and letting it write the code. Here's how it works, who it's for, and its limits.

Vibe coding is building software by describing what you want in plain language and letting an AI write the code. You say “make me a page that tracks my expenses”, the AI writes it, you run it, and you tell the AI what to change. You steer by results instead of by reading every line. It’s real, it works for a surprising amount of software, and it fails in specific ways you can learn to avoid.

Where the name comes from

The term was coined in February 2025 by Andrej Karpathy, an AI researcher. He described a way of working where you give in to the vibes and, in his words, “forget that the code even exists”. You talk to the AI, accept what it writes, paste back any error messages, and keep going.

He meant it for throwaway weekend projects. The name stuck and grew. Today people use “vibe coding” for almost any software built mostly by talking to an AI, from a one-page calculator to a full product.

How vibe coding works, step by step

You don’t need to be a programmer to follow the loop.

  1. Describe. Tell an AI assistant what you want. “A web page with a timer that plays a sound after 25 minutes.”
  2. Generate. The AI writes the code, often a single file to start.
  3. Run. Open it and try it. Does it do the thing?
  4. React. Say what’s wrong or what’s missing. “The sound is too quiet. Add a pause button.”
  5. Repeat until it’s good enough.

The skill is not typing code. The skill is describing clearly, noticing what’s off, and knowing when to stop.

What you can really build this way

I’m a software engineer, and I’ve built these mostly by describing them to an AI:

  • Benztormr, a tool that turns a messy brain dump into a roadmap. It is one HTML file.
  • Kaiju City Smash, a 3D monster game with online multiplayer that runs in a browser tab.
  • OneTrue, a native Mac app for my notes, tasks and small tools.
  • TARA, a story-driven 3D driving game where every model and texture is generated by code.

Those range from an afternoon to many weeks. The small ones really were close to pure vibes. The big ones were not, and that difference is the most useful thing to understand about vibe coding.

Where vibe coding goes wrong

It changes things you didn’t ask for

You ask for a logout button. The AI adds the button, and also rewrites your login code, renames two settings and removes a safety check. Then it tells you everything works. The bug is rarely in the button. It’s in the extra changes you never looked at.

It works until it doesn’t

A small project fits in the AI’s attention. A big one doesn’t. Past a certain size, the AI starts forgetting decisions it made earlier, and each fix breaks something else. If you have no notes and no saved versions, you’re stuck.

It hides security problems

AI-written code can leak passwords, skip permission checks, or trust whatever a user types. If your project handles logins, payments or other people’s data, “it seems to work” is not enough.

You can’t fix what you can’t describe

When something breaks and you have no idea what the code does, you can only say “it’s broken, fix it”. Sometimes that works. Sometimes the AI goes in circles.

Vibe coding vs. AI-assisted engineering

These get mixed up, and the difference matters.

Vibe coding AI-assisted engineering
Who reads the code Nobody, or barely A person reviews the changes
Saved versions Often none Every step saved in Git
Testing “I clicked around” Automated checks plus clicking around
Good for Prototypes, personal tools, learning Anything other people depend on

Most of my real work sits in the right-hand column. I still let the AI write nearly all the code. The difference is that I check what changed, I save a version before every request, and I write down the rules of the project so the AI doesn’t have to guess.

Is vibe coding bad?

No. It’s the fastest way I know to find out whether an idea is worth building. It lets people who have never written code make useful tools for themselves, and that’s a good thing.

It becomes a problem when a prototype quietly turns into something people rely on, with no saved versions, no checks and no one who understands it. The fix isn’t to stop using AI. It’s to add a few habits as the project grows.

How to start today

  • Pick something tiny and personal. A tip calculator. A packing list. A page that picks tonight’s dinner.
  • Ask for a single HTML file. You can open it by double-clicking it, with nothing to install.
  • Change one thing at a time. Small requests are easier to check and easier to undo.
  • Save versions. Even copying the file to v1, v2, v3 is better than nothing. GitHub does this properly, and it’s worth learning early.
  • Ask the AI to explain. “Explain this file to me like I’m new” is a great way to learn while you build.

When you’re ready for the habits that keep bigger projects from falling apart, read how to vibe code better. And if you want a fun first project, try vibe coding a browser game.

vibe codingAI codingbeginnersClaude Code

Keep reading

All posts →

How to vibe code better: 12 habits that stop AI from breaking your project

Twelve practical habits for building software with AI: small steps, commits before every prompt, reading the file list, written rules and real checks.

Vibe coding4 min read

How to write a CLAUDE.md (or AGENTS.md) that makes AI better at your project

A CLAUDE.md or AGENTS.md file tells an AI coding assistant how your project works. What to put in it, what to leave out, and a real example from a game.

Vibe coding4 min read

Everyone should learn GitHub, even if you never write code

GitHub is where AI work gets saved, undone and shared. Why non-programmers should learn it now, what the words mean, and a first-hour plan.

GitHub4 min read