Skip to main content

Vibe Coding: Coding by Feel

In early 2025, former Tesla AI Director and OpenAI founding member Andrej Karpathy posted a tweet that went something like:

"I've discovered a new kind of programming I call Vibe Coding. You fully go with the flow, embrace exponential code generation, accept all suggestions, don't read diffs, and can't be bothered to understand the underlying logic. If it runs, it ships."

The tweet went viral. Not just because Karpathy is famous (though he is), but because he perfectly described a new way of programming that's already happening at massive scale — a way that lets many "non-programmers" write code too.

What Exactly Is Vibe Coding?

In a nutshell: you tell AI what you want in natural language, and AI writes the code for you. Can't read the code? No problem. Don't know what React or Tailwind is? Doesn't matter. Your job is simple: describe what you want, check the result, describe adjustments, repeat.

The word "Vibe" captures it perfectly — you're just going by feel. You don't need to understand what each line of code does; you only need to check whether the end result looks right. It's like driving a car — you don't need to know the four-stroke engine cycle, just that the gas pedal makes it go and the brake makes it stop.

Traditional programming works like this: think through the logic → write code → debug → test → deploy.

Vibe Coding works like this: describe what you want → check the result → say "not quite" → check the new result → say "much better, but tweak this bit" → done.

The whole process feels more like "coaching" an extremely obedient and capable assistant than "writing" a precise set of instructions.

Why Does This Actually Work?

You might wonder: can code written this haphazardly really be any good?

Honestly, early on it wasn't great. AI coding assistants in 2023 frequently produced buggy code with questionable logic. But by 2025, the situation changed dramatically.

Large language models like Claude 3.5 Sonnet and GPT-4o represent a quantum leap in code generation. They can do more than write individual functions — they understand the full project context and can generate complete frontend pages, backend APIs, and even database designs in one go.

Tools like Cursor take "understanding context" to the next level. It reads all the files in your project, understands your code style and architecture, and writes new code based on that foundation. It's like working with a partner who's been on your team for six months and knows your habits and preferences.

Plus, AI has a natural advantage: it doesn't make silly mistakes. Typos, unclosed brackets, reversed variable names — the kinds of errors that drive beginners crazy — AI basically never makes them. You only need to focus on "does this feature do what I want," not "why is it throwing an error here."

A Real Vibe Coding Workflow

Let me walk you through what it actually looks like in practice.

Say you want to build a personal portfolio website.

You open Cursor (or Claude Code, Windsurf), create a new project folder, and type into the AI chat:

"Create a modern personal portfolio website with a homepage, project showcase page, and about page. Use Next.js and Tailwind CSS. Clean, bold style with a dark theme."

AI generates a bunch of files. You don't need to read them. Run npm run dev in the terminal, and you'll see a decent-looking website in your browser.

Then you say:

"Tweak the hero section — change the title to 'Hi, I'm Alex', subtitle to 'A designer who loves to create', and add a gradient animation to the background."

AI makes the changes. You refresh the page to check.

"The project cards are too close together — add more spacing. And add a hover lift effect when you mouse over them."

Round after round of conversation, and your website is done. You never wrote a single line of code — you might not even know the difference between TypeScript and JavaScript. But you've built a good-looking, functional website.

That's Vibe Coding.

Which Tools Support Vibe Coding?

Several tools on the market already support Vibe Coding, each with its own strengths:

Cursor is currently the most popular AI coding editor. Built on top of VS Code, it deeply integrates AI capabilities. You can use Cmd+K (Mac) anywhere to describe what you want in natural language, and AI generates or modifies code for you. Its Composer feature can generate code across multiple files simultaneously. Works great for both developers and non-developers.

Claude Code is Anthropic's command-line tool. You chat with it in natural language in a terminal, and it can directly manipulate your file system, run commands, and write code. Perfect for the "I have a project folder, just handle everything" scenario.

Bolt.new (from StackBlitz) runs entirely in the browser. You don't need to install anything — just open the webpage and start conversational programming. It's especially great for quick prototyping — have an idea and want to see what it looks like? Five minutes to results.

Lovable (formerly GPT Engineer) is another online platform focused on generating complete web apps through conversation. Its strength is that the output looks polished out of the box — the UI aesthetic is on point.

Windsurf (formerly Codeium) is also an AI editor, known for its Cascade feature that deeply understands your project structure and performs complex multi-step operations.

In China, Trae from ByteDance is an AI IDE similar to Cursor with excellent Chinese language support. Tongyi Lingma from Alibaba works primarily as a VS Code / JetBrains plugin.

Which one to pick? My recommendation: if you know zero about code, start with Bolt.new or Lovable — zero barrier to entry. If you're willing to invest a bit more time learning, Cursor currently offers the best overall experience.

Vibe Coding Isn't a Silver Bullet

After all the good stuff, let's talk about limitations.

Vibe Coding is a godsend for "building a prototype from zero to one." But as projects grow bigger and more complex, relying purely on Vibe Coding gets challenging.

Why? Because AI-generated code, while functional, isn't necessarily "optimal." When a project has only a few hundred lines of code, it doesn't matter. But when the codebase grows to thousands or tens of thousands of lines, those "close enough" decisions can snowball into technical debt.

Also, when AI generates buggy code and you can't read code at all, debugging becomes painful. You can only copy the error message to AI and hope it fixes things. Sometimes it works; sometimes the "fix" creates more problems.

So a pragmatic approach is: use Vibe Coding for early prototyping and MVPs (Minimum Viable Products). Once you've validated the direction is right, consider hiring a real engineer to optimize and refactor.

What This Means for Regular People

The biggest significance of Vibe Coding isn't how much it improves programmer efficiency — though it does, significantly. Its true significance is: it transforms "writing code" from a professional skill into a form of expression.

Just as typing was once a secretary's specialized skill and now everyone can do it. Just as photography once required darkroom expertise and now everyone just pulls out their phone. Programming is undergoing the same democratization.

You don't need to become a "programmer" to solve problems with code. You just need to become "someone who can talk."

And that's something we all already know how to do, isn't it?