
What is vibe coding and how do you actually do it?
Learn vibe coding from basics to building apps. Discover the tools that make it work and how to start building software with natural language instead of traditional code.
Three days and $500 in AI credits later, someone spent more time building an app than it would've cost to just buy the solution for ten bucks. Sound familiar? Welcome to vibe coding—the approach where you "forget that the code even exists" and let AI do the heavy lifting.
The term was coined by computer scientist Andrej Karpathy, a co-founder of OpenAI and former AI leader at Tesla, in February 2025. But vibe coding isn't just about being lazy with code. It's a fundamental shift in how we build software—one that's turning non-programmers into app builders and letting experienced developers prototype at lightning speed.
What exactly is vibe coding?
Vibe coding involves accepting AI-generated code without reviewing it, instead relying on results and follow-up prompts to guide changes. Think of it like having a conversation with a really smart coding partner who does all the typing.
Here's what makes it different from traditional coding:
Traditional coding: You write every line manually, debug syntax errors, and manage complex file structures.
Vibe coding: You describe what you want in plain English, and AI generates the code. When you get error messages, you just copy paste them in with no comment, usually that fixes it.
This frees you up to think about the big picture, or the main goal of your app, while the AI handles writing the actual code. You're building a project or webapp, but it's not really coding - you just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
But here's the key distinction: Acceptance of AI-generated code without understanding it is key to the definition of vibe coding. Programmer Simon Willison said: "If an LLM wrote every line of your code, but you've reviewed, tested, and understood it all, that's not vibe coding in my book—that's using an LLM as a typing assistant."
Why did Andrej Karpathy create this term?
Karpathy described vibe coding as a new kind of coding where "you fully give in to the vibes, embrace exponentials, and forget that the code even exists." He noted it's "not too bad for throwaway weekend projects, but still quite amusing."
The term caught on because it minted a fitting name at the right moment for something that a lot of people were feeling at the same time. AI coding tools had reached a point where they were genuinely useful, but not quite reliable enough for serious production work.
The concept of vibe coding elaborates on Karpathy's claim from 2023 that "the hottest new programming language is English," meaning that the capabilities of LLMs were such that humans would no longer need to learn specific programming languages to command computers.
How does vibe coding differ from traditional programming?
The differences go deeper than just who writes the code:
Focus shifts from syntax to outcomes: With traditional programming, you focus on the details of implementation, manually writing the specific commands, keywords, and punctuation a language requires. Vibe coding lets you focus on the desired outcome instead, describing your goal in plain language, like "create a user login form," while the AI handles the actual code.
Error handling becomes conversational: Instead of debugging line by line, you describe problems and let AI fix them. Sometimes the LLMs can't fix a bug so you just work around it or ask for random changes until it goes away.
Code understanding is optional: The code grows beyond your usual comprehension, you'd have to really read through it for a while. This can be liberating for prototyping but risky for production code.
Which tools actually enable vibe coding?
The vibe coding ecosystem has exploded with specialized tools. Here are the main categories:
AI-Native Code Editors
Cursor is the gold standard for vibe coding. Cursor lets you go from install to your first useful change quickly. You can sign in, ask Cursor to explain your codebase, make a small edit, and review the result. Composer mode, where it can edit multiple files simultaneously is genuinely magical when it works. When you start with something like "Create a Next.js 14 task management app with authentication, real-time updates, and team collaboration," Cursor's first response is a complete project scaffold.
Windsurf takes a different approach with its Cascade feature. Windsurf uses what it calls Cascade, an agentic multi-step reasoning flow. Rather than generating a single batch of edits like Cursor's Composer, Cascade breaks a request into sub-tasks, reasons through dependencies, and executes steps sequentially. This makes Windsurf particularly strong at navigating large codebases with complex interdependencies.
Browser-Based Solutions
Replit Agent goes beyond just editing code. It's not just a coding assistant, it's an autonomous agent that deploys your app too. Tell it what you want, and it builds, tests, and ships. Replit Agent operates as a full-stack development agent within Replit's browser-based environment.
Claude Artifacts work well for simpler tools. You can build useful utilities by describing them to Claude, and Claude Artifacts are shareable, so other folks can use them. Perfect for things like calculators or data visualizers.
Terminal-Based Tools
Claude Code brings vibe coding to the command line. Claude Code CLI brings agentic coding to the terminal, letting developers issue natural language commands that result in file creation and modification; shell command execution is supported but requires user confirmation by default.
What's the step-by-step workflow?
Here's how a typical vibe coding session works:
1. Start with a clear goal
Don't just say "build me an app." Be specific: "Create a meal planning app that suggests recipes based on ingredients I have at home and my dietary preferences."
2. Choose your tool and set it up
For beginners, start with something like Cursor's quickstart guide. This quickstart will walk you through a project using Cursor's core features. By the end, you'll be familiar with Tab, Inline Edit, and Agent.
3. Configure your preferences
In Cursor, a .cursorrules file at the project root acts as a system prompt that persists across all interactions (note: Cursor 0.45+ introduced .cursor/rules as the preferred mechanism). Windsurf uses .windsurfrules for equivalent functionality.
4. Describe, generate, test, refine
This loop of describing, generating, testing, and refining continues until the code is complete. You're not writing code—you're having a conversation about what you want built.
5. Deploy and iterate
Vibe deploying is the ability to launch your application to a live, production-grade environment with a single click or prompt. This removes the "DevOps bottleneck," allowing you to test your ideas with real users immediately.
What kinds of apps are people actually building?
The projects range from simple utilities to surprisingly sophisticated applications:
Personal tools: Justin built a Plywood Cutting Visualizer in Claude. The app is simple but ridiculously useful. "Input the dimensions of a piece of plywood," Justin says, "and ask for the resulting size."
Business applications: Andy shared: "We start with Lovable and v0 to prototype features and then move to Cursor to fine-tune before shipping to production. We've built several apps this way, and our most recent is Dreambase. We use this same flow to support some of our enterprise clients as well."
Creative projects: Storypot lets you drag a few emojis into a pot, and it magically turns them into a short story. Built by Akshan Ish on Replit for his kid, it started as a small weekend project and ended up being a family favourite. It's simple, creative, and a great reminder that sometimes the best projects come from just building for the people around you.
Productivity apps: Found My Focus uses short, interactive experiments rooted in neuroscience and therapy practices to help users understand what's really behind their procrastination. Built by Su, a coach exploring how compassion meets productivity, Found My Focus stands out for its thoughtful design and human touch. It's a great example of how vibe coding tools can help solo creators turn deeply personal ideas into working, beautifully crafted products.
Who should actually use vibe coding?
The people most likely to benefit from vibe coding fall into two camps: One is people like Karpathy, who already have a good grasp of coding and know how to fix any errors if anything goes seriously wrong if they're using it to build anything important; the other is absolute amateurs with little to no coding experience.
Perfect for:
- Rapid prototyping and weekend projects
- Non-programmers who want to build simple tools
- Experienced developers testing new ideas quickly
- Educational projects and learning experiments
Not ideal for:
- Production systems handling sensitive data
- Applications requiring deep performance optimization
- Complex enterprise software with strict requirements
- Mission-critical systems where bugs have serious consequences
What are the risks you need to know about?
Vibe coding isn't without serious downsides:
Security vulnerabilities: Developers may use AI-generated code without comprehending its functionality, leading to undetected bugs, errors, or security vulnerabilities. The security issues included hardcoded API keys in the frontend.
Technical debt accumulation: AI generates code that looked correct, touched the right files, but introduced subtle bugs. An event listener that never gets removed. A CSS variable that conflicts with an existing one. Nothing that breaks immediately, but stuff you discover two weeks later.
Professional development concerns: Simon Willison stated: "Vibe coding your way to a production codebase is clearly risky. Most of the work we do as software engineers involves evolving existing systems, where the quality and understandability of the underlying code is crucial."
While this approach may be suitable for prototyping or "throwaway weekend projects" as Karpathy originally envisioned, it is considered by some experts to pose risks in professional settings, where a deep understanding of the code is crucial for debugging, maintenance, and security.
How do you get started today?
If you're ready to try vibe coding, here's your roadmap:
- Pick a simple project - Start with something small like a calculator, a personal dashboard, or a simple game
- Choose your tool - Cursor for comprehensive editing, Claude for quick prototypes, or Replit for browser-based development
- Be specific with prompts - "Build a to-do app with drag-and-drop prioritization and local storage" works better than "make me an app"
- Embrace the iteration - Don't expect perfection on the first try; refining through conversation is part of the process
- Keep backups - Save working versions before major changes, since AI can sometimes break things that were working
The future of coding isn't about replacing programmers—it's about making software creation accessible to more people while letting experienced developers focus on higher-level problems. If vibe coding grants millions of new people the ability to build their own custom tools, that's something to celebrate.
Whether you spend three days and $500 building something you could've bought for $10 is entirely up to you. But at least now you'll understand exactly what you're getting into.