Vibe coding is a way of making software where you tell an AI model what you want in everyday words, let it write the code, and judge the result by trying it rather than by reading every line. The phrase was coined by Andrej Karpathy, a co-founder of OpenAI and former head of AI at Tesla, in a post in February 2025, and it spread quickly because it named something many people were already doing.
How a vibe coding session actually runs
You open a chat-style tool backed by a large language model and describe the outcome: "a booking page for my dog grooming business with three time slots per day". The model generates files, the tool runs them, and you look at the preview. When something is off, you say so in plain language ("the button is hidden on phones") and the model edits the code again. Karpathy's original description included accepting changes without reviewing the diff and pasting error messages straight back to the AI. That loop of describe, run, react is the whole method.
Many tools now wrap this loop in an agent that can create files, install packages and read error logs by itself, so the person only steers.
An example from a small shop
A bakery owner wants a pre-order form for holiday cakes. Instead of hiring a developer for a week, she describes the form, the cake list and the pickup dates to an AI builder. In an hour she has a working page. She never opens the code, but she tests the form on her phone, places a fake order, and asks for fixes until it behaves. We.Inc works this way: you describe a site in chat and it generates a React, Vite, TypeScript and Tailwind CSS project you can also edit by hand.
When vibe coding is the right call
It suits prototypes, internal tools, landing pages and small sites where the cost of a bug is low and speed matters. It is a weaker fit for anything that handles payments, logins or personal data, unless someone who can read code reviews those parts. Karpathy himself framed it as suited to throwaway weekend projects.
Where vibe-coded projects go wrong
- Never reading security-sensitive code. AI-written apps can ship with exposed API keys or database rules that let anyone read customer records.
- Describing features, not checks. Say how you will know it works ("an order shows up in my email") so you can test it.
- Losing earlier versions. Keep the project in version control so a bad AI edit can be rolled back.
- Letting the codebase sprawl. After many patch requests, ask for a cleanup pass before adding more.
Related terms
- LLM: the model that writes the code.
- Prompt engineering: wording requests so the model gets them right.
- AI agent: the tool layer that runs and fixes code on its own.
- No code: the older visual route to building without programming.