In February 2025, Andrej Karpathy posted a simple tweet. He described how he codes now — just talking to AI, accepting whatever it produces, and barely reading the code. He called it “vibe coding.” That tweet changed how millions of developers think about writing software.
This guide goes deep. If you want the short version, read What is Vibe Coding? first. This article explains the full picture — the mindset, the methodology, and how to actually do it well.
Where Vibe Coding Came From
Andrej Karpathy is the former head of AI at Tesla and a founding member of OpenAI. When he talks about AI, people listen.
His exact words:
“There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.”
This was not a joke. He was describing his actual workflow. He uses AI to build real software, and he does not read most of the code it produces.
The term exploded. Within months, “vibe coding” went from a tweet to a movement. Collins English Dictionary named it Word of the Year 2025. Search volume increased 6,700% in the first year. By 2026, the vibe coding market reached $4.7 billion globally.
But here is the important part — vibe coding is not just “using AI to write code.” It is a different way of thinking about software development.
Vibe Coding vs Traditional Coding
In traditional coding, you are the builder. You plan the architecture. You write every function. You debug every error. The code lives in your head.
In vibe coding, you are the director. You describe what you want. AI builds it. You review the result. You give feedback. The AI fixes things. You never need to understand every line.
Here is what this looks like in practice:
Traditional approach — adding search to a web app:
1. Research search algorithms
2. Design the search index structure
3. Write the search function (50-100 lines)
4. Write the API endpoint
5. Write the frontend search bar component
6. Write the debounce logic
7. Test edge cases
8. Fix bugs
9. Time: 4-6 hours
Vibe coding approach:
You: "Add full-text search to the notes app. Use the existing
SQLite database. Add a search bar to the top of the notes list.
Debounce the input by 300ms. Show results as the user types."
AI: [writes all the code — backend, frontend, debounce logic]
You: [test it, search works but results are slow]
You: "Search is slow with 1000+ notes. Add an FTS5 virtual table
for full-text search instead of LIKE queries."
AI: [rewrites the search to use FTS5, adds migration]
You: [test again, works fast]
Time: 20 minutes
The difference is not just speed. It is a fundamentally different relationship with code.
The Three Modes of AI-Assisted Development
Not all vibe coding is the same. There are three distinct modes, and knowing when to use each one is the first skill you need to learn.
Mode 1: Autocomplete
This is the lightest form. AI suggests the next few lines as you type. You press Tab to accept or keep typing to ignore.
When to use it: Writing boilerplate, filling in obvious patterns, completing function signatures.
Tools: GitHub Copilot, Cursor Tab, Cody.
Example prompt: You don’t write a prompt. You just start typing:
def calculate_shipping_cost(weight, distance):
# AI suggests the rest as you type
base_rate = 5.99
per_kg = 0.50 * weight
per_km = 0.01 * distance
return base_rate + per_kg + per_km
You are still in control. The AI is just saving you keystrokes.
Mode 2: Chat
You describe a task in plain English and the AI writes the code. You copy it into your project, adjust it, and move on.
When to use it: Writing new functions, fixing bugs, explaining code, generating tests.
Tools: Claude Code, Cursor Chat (Cmd+L), Copilot Chat.
Example prompt:
Write a Python function that takes a list of timestamps and
returns the average time between consecutive events. Handle
edge cases: empty list, single item, unsorted input.
The AI gives you complete, working code. You review it, test it, and paste it in.
Mode 3: Agent
This is full vibe coding. You describe a feature or change, and the AI agent reads your codebase, makes changes across multiple files, runs tests, and even commits the code.
When to use it: Building new features, large refactors, creating entire components.
Tools: Claude Code (terminal agent), Cursor Composer/Agent, Copilot Agent Mode.
Example prompt in Claude Code:
Add user authentication to the Express app. Use JWT tokens.
Create signup and login endpoints. Add middleware that protects
all /api routes. Store users in the existing PostgreSQL database.
Hash passwords with bcrypt.
The agent might create 5-8 new files, modify 3 existing files, install packages, and run the tests — all without you touching a single file.
This is the mode Karpathy was talking about. You describe the vibe. The AI does the rest.
Who is Vibe Coding For?
Vibe coding is not just for beginners who cannot write code. In fact, it works best for experienced developers.
Professional developers use it to move faster. You know what good code looks like. You can review what the AI writes. You can catch the mistakes. According to Stack Overflow 2025, 92% of US developers use AI coding tools daily.
Solo developers and indie hackers use it to build things that would normally need a team. One person with AI can build a full-stack app in days instead of weeks.
Non-traditional coders — designers, product managers, data scientists — use it to build tools they need without waiting for engineering. This is the group Karpathy was mostly talking about.
Students use it to learn faster. Ask the AI to explain its code. Ask it to write the same function in three different ways. Use it as a tutor, not just a code generator.
The key insight: vibe coding does not replace coding skill. It amplifies it. The better you understand code, the better you can direct the AI, review its output, and fix its mistakes.
The Mindset Shift
Moving from traditional coding to vibe coding requires changing how you think. Here are the biggest shifts:
From “writing code” to “describing intent”
Stop thinking about implementation. Start thinking about what you want the code to do. Instead of “I need a for loop that iterates over the array and filters items where the date is after today,” say “Filter the list to show only future events.”
The AI knows how to write for loops. Your job is to be clear about the goal.
From “getting it right the first time” to “iterating”
Your first prompt will not produce perfect code. That is normal. Vibe coding is a conversation, not a single command. You describe, review, adjust, and repeat.
A typical vibe coding session has 3-5 iterations before the code is right. That is still faster than writing it yourself.
From “understanding every line” to “understanding the behavior”
You do not need to read every line of AI-generated code. You need to understand what it does. Run it. Test it. Check the output. If the behavior is correct, the code is fine.
This is controversial. Many experienced developers push back on this idea. They are not wrong — there are situations where you must read every line. We cover those in When NOT to Vibe Code, the fourth article in this series.
From “solo work” to “directing an AI partner”
Vibe coding is a collaboration. You bring the vision, the requirements, the domain knowledge. The AI brings speed, pattern knowledge, and tireless execution. Neither is enough alone.
Real Example: Building a Markdown Converter
Let me show you a complete vibe coding session. I used Claude Code to build a simple tool.
The task: Build a CLI tool that converts Markdown files to clean HTML.
First prompt:
Build a Python CLI tool called md2html. It takes a markdown file
as input and outputs clean HTML. Use the click library for CLI
args. Support:
- Input file path (required)
- Output file path (optional, defaults to same name with .html)
- A --watch flag that re-converts when the file changes
Claude Code created three files: md2html.py, requirements.txt, and a README.md. The basic conversion worked on the first try.
Second prompt (after testing):
The code blocks in the output don't have syntax highlighting.
Add Pygments for code highlighting. Also add a --style flag
that lets the user pick a Pygments theme. Default to "monokai".
Claude Code modified md2html.py, added Pygments to requirements.txt, and updated the CLI arguments. It took about 15 seconds.
Third prompt (a problem I found):
When I use --watch, it crashes if I save the file while it's
in the middle of converting. Add proper file locking or just
catch the error and retry.
Claude Code added error handling with a retry mechanism. Total time from start to working tool: 8 minutes.
Could I have written this myself? Yes. It would have taken about an hour. The vibe coding approach was not just faster — it was more fun. I focused on what the tool should do, not on how to implement file watching or Pygments integration.
Common Mistakes When Starting
Most developers make the same mistakes when they start vibe coding. Here is what to avoid:
Prompts that are too vague. “Build me a todo app” gives mediocre results. “Build a todo app with React, local storage persistence, drag-and-drop reordering, and dark mode support” gives much better results. Be specific about what you want.
Not testing the output. AI-generated code can look correct and still have bugs. Always run the code. Always test edge cases. Never trust code you have not tested.
Not iterating. If the first result is not what you wanted, do not start over. Give feedback. “The sort is wrong — it should sort by date descending, not ascending.” Iteration is faster than rewriting your prompt.
Using AI for things you should learn yourself. If you are a student learning Python, do not let AI write your first functions. Write them yourself. Understand the basics. Then use AI to accelerate the work you already understand.
Ignoring security. AI does not think about security unless you ask. Always review authentication code, database queries, and API endpoints yourself. See When NOT to Vibe Code for more on this.
How to Start Today
Here is what to do right now:
Pick one tool. If you are not sure, start with Claude Code (free tier available) or Cursor (free tier available). Read our comparison guide if you need help choosing.
Pick a small project. A CLI tool, a script, a simple web page. Something you could build in an hour manually.
Describe it to the AI. Be specific. Include the tech stack, the features, and the behavior you expect.
Review and iterate. Test the output. Give feedback. Ask for changes. Get comfortable with the conversation.
Gradually increase complexity. Once you are comfortable with small tasks, try larger features, multi-file changes, and full project scaffolding.
You will be surprised how quickly it clicks. Most developers tell me it took them one afternoon to change how they work forever.
Key Takeaways
- Vibe coding means describing what you want in plain English and letting AI write the code. It was coined by Andrej Karpathy in February 2025.
- There are three modes: autocomplete (light), chat (medium), and agent (full vibe coding). Learn when to use each one.
- It works best for experienced developers who can review and direct AI output. It amplifies skill — it does not replace it.
- Start small, be specific in your prompts, always test the output, and iterate on the results.
- The mindset shift matters more than the tools. You are a director now, not just a builder.
What’s Next?
In the next article, we cover Choosing Your AI Coding Tool — a detailed comparison of Claude Code, Cursor, and GitHub Copilot to help you pick the right tool for your workflow.
For a quick reference on all AI coding tools, check the AI Coding Tools Cheat Sheet.
This is part 1 of the Vibe Coding series.