There’s a new hot buzz in the world of coding called “vibe coding.” It floated into the collective zeitgeist in early February, courtesy of a post on Twitter/X by Andrej Karpathy.
Karpathy is no random Xwitter fiend. He has a Stanford Ph.D. in natural language, computer vision, and deep learning models. He was head of AI at Tesla and was one of the co-founders of OpenAI. Today, he’s running an education startup called Eureka Labs, which is producing AI courseware.
Vibe coding, deconstructed
So when someone with that resume suggests there is a new way of coding called “vibe coding, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists,” folks listen.
In some ways, it seems like a license to avoid all of coding’s pesky best practices, the things that make coding more work than play. And, in many ways, it is permission to just go with the flow.
Also: The best AI for coding in 2025 (and what not to use)
Let’s first deconstruct the details of Karpathy’s tweet (which essentially defines “vibe coding”), and then we’ll discuss the pros and cons of this approach.
He says it’s possible to take this approach because the coding AI’s are now good enough. He also says, “I just talk to Composer with SuperWhisper so I barely even touch the keyboard.”
I think he’s talking about Cursor Composer, a fork of VS Code that embeds AI tools into the coding environment. SuperWhisper is a text-to-speech writing tool.
Karpathy notes, “I ask for the dumbest things like ‘decrease the padding on the sidebar by half’ because I’m too lazy to find it.”
This is the sort of public knowledge area where AIs can be truly helpful. In fact, it’s a variation of my Tip 25, using the AI to help write CSS, from my 25 tips for AI programming roundup.
He says, “I ‘Accept All’ always, I don’t read the diffs anymore.”
What he’s saying is that he takes whatever code the AI gives him and lets it drop into the code, without comparing the AI’s code with what it’s changing.
Also: How to turn ChatGPT into your AI coding power tool – and double your output
This is a fairly dangerous technique that’s probably safe enough with Karpathy’s programming skills, but would be very ill-advised for a new programmer. He has the skills to fix what he breaks. A newbie might not.
Karpathy also mentions, “When I get error messages I just copy paste them in with no comment, usually that fixes it.”
I have found that, with enough context, the AI can be quite good at identifying bugs and how to fix them. In fact, I use debugging tests as part of my benchmark tests for whether an AI is ready for coding prime time.
Here’s where being skilled at coding becomes essential for vibe coding. He notes, “The code grows beyond my usual comprehension, I’d have to really read through it for a while.”
When you write your own code, you generally have a clue how it works and what it’s supposed to do. But when you inherit code from another coder (and the AI is basically another coder), it’s often necessary to be able to dig in and figure out how that code works. An AI might not get you all the way there.
Also: Why you should ignore 99% of AI tools – and which four I use every day
In fact, Karpathy confirms that in this next sentence, “Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away.”
I have found that AIs (particularly ChatGPT) can be amazing as AI coding helpers…until they’re not. Sometimes the AI hits a wall where it just doesn’t get it, at which point it either stops being helpful or becomes actively obtuse. Sometimes rephrasing the prompt helps. Other times, it’s just astonishing to watch how off the mark the AI can get all on its own.
Here’s Karpathy’s final word on his vibe coding process. He says, “It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding — I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.”
That’s been my experience as well. But here’s the rub: there’s a very big jump between “mostly works” and “ready to ship.” Take the 80/20 rule to heart. It takes 20% of the work to get 80% of the project done. But that last 20%, that will take you 80% of the work. So “mostly” is a very far distance from “all done.”
Hands on with vibe coding
Webflow is a website building and hosting company that competes with Squarespace, Weebly, Wix, and — to an extent — WordPress. It’s a fairly popular platform that provides a visual editor to help users build their sites.
Rachel Wolan is the company’s chief product officer. She spent a weekend trying to produce an app using the vibe-coding spirit. Rachel told ZDNET, “AI can get a prototype stood up, but it won’t replace software engineers yet or production-grade platforms like Webflow.”
She shared five things that vibe coding does well:
- Quick backend setup: The AI handled authentication and database setup with minimal effort.
- Fast and easy iteration: Making changes and testing new ideas was efficient.
- Automatic error detection: The AI spotted mistakes, suggested fixes, and even restructured code when needed.
- Hard to break things: Built-in safeguards made experimentation less risky.
- Handled vague prompts well: The AI generated useful output even with unclear instructions.
She also told ZDNET about five areas where the AI has major gaps:
- Clunky interface: It was necessary to wait for each task to finish before giving new commands.
- Slow for precise edits: Fine-tuning layouts and design was tedious despite visual editing tools.
- Custom design struggles: Creating a unique visual experience was still difficult.
- Inefficient basic edits: Simple text changes took longer than expected.
- Unpredictable changes: The AI sometimes overwrote or removed elements unexpectedly.
Two of the negatives bear further examination.
She said that, “Prompt-to-code slows you down when you need control and precision.”
This is where the difference between being a veteran programmer and some newbie who wants free and cheap coding help comes into play. If you’re a newbie, you’ll take what you can get, and you’ll like it. But if you’re an experienced hand, you have the skills to take your code where it needs to go. Sometimes, the AI stubbornly doesn’t want to get there from here.
Another thing Wolan mentioned was, “It [the AI] frequently overwrote my changes, which was frustrating. I would change one element in the nav bar, and it would overwrite another element. Some work disappeared, and I didn’t know why.”
This has been my concern with letting an AI have direct access to your work, right in the coding environment. When I use ChatGPT to help me code, I always keep the ChatGPT work in its own browser tab, and never let it touch my actual code. When I’m satisfied, I do the cut and paste myself so I know what is going in where.
Also: Why AI-powered security tools are your secret weapon against tomorrow’s attacks
That, of course, is the exact opposite of what Karpathy recommended as vibe coding’s live and let live approach. But I’ve had hours of work zorched far too often by some computer glitch or another to fully trust an automated tool to not ruin my day.
Wolan’s conclusion is that vibe coding is, “Fast, flexible, and lowers the barrier to building software. But it still requires knowing how to code and build software.” She also says, “Vibe coding shouldn’t be seen as a shortcut to software development. It’s a new tool in the toolkit. The real opportunity is in augmenting product managers, designers, and engineers, not replacing them.”
My take on vibe coding: Hype, help, and hard truths
Coding styles have been a matter of debate since forever. Different skills, personalities, and project requirements require different approaches to writing code.
Vibe coding is a lot like stream-of-consciousness style creative writing, where the writer puts down whatever comes into their head and hopes it works. But not all of us can be Proust or Kerouac. The style doesn’t work, for example, if you’re writing an article about a programming technique.
Vibe coding has been with us for years, but it didn’t have such a cool name. In fact, a whole bunch of the techniques I list in my 25 tips for AI programming article reflect the ideas of vibe coding, particularly letting the AI do some of the tedious, but well-documented coding work.
Also: How to use ChatGPT to write code – and my favorite trick to debug what it generates
But vibe coding shouldn’t be confused with no-code or low-code application development environments (although I’m sure some marketing flack will use the term).
Vibe coding, as defined by master coder Andrej Karpathy, is a technique for experienced hands to turbocharge bursts of productivity in areas where the AI can do just as well as the master. But it takes an experienced developer to know what those areas are, and to limit the AIs influence to common-knowledge coding and leave the unique business logic coding to the human developer.
In a busy commercial kitchen, there’s often the head chef and the sous chef, who’s second-in-command. Somewhere in the kitchen hierarchy, there’s someone whose job it is to cut up all the vegetables. That person is often called the prep cook or prep chef.
Vibe coding is basically letting the AI serve as the prep chef for areas of code. It can get a lot of necessary work done without using up the time of a seasoned developer. But don’t confuse the work of a prep cook with a master chef. Likewise, don’t confuse the work of a helpful AI doing small and controlled coding tasks with a skilled developer.
Also: Why OpenAI’s new AI agent tools could change how you code
Vibe coding is a fun and productive technique with a sticky name, as long as you have the skills. It is not, as Wolan said, a shortcut for creating a software product. That work requires great software engineering skills along with the product management skills and experience to know how to define and describe a product, make trade-off decisions, understand market forces and competitive positioning, and so much more.
I love the term. Because it’s such a good name, I’m sure we’ll be hearing it more and more. Just don’t confuse a sticky term with getting real work done. And don’t let any vendor tell you that you can create a fully-functional and deployable piece of code fueled entirely by wishes, good intentions, and, of course, your credit card number.
Can you dig it? Stay groovy.
What do you think about vibe coding? Have you experimented with AI-driven coding assistants, and do you find them helpful or frustrating? Do you trust AI-generated code enough to “Accept All” without reviewing it?
How do you balance AI assistance with maintaining control over your projects? Do you see vibe coding as a productivity booster, or does it create more problems than it solves? Let us know in the comments below.
You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, on Bluesky at @DavidGewirtz.com, and on YouTube at YouTube.com/DavidGewirtzTV.
Leave a Reply