Vibe Coding 101: Build an App with AI, Zero Experience
Learn vibe coding from scratch. Build your first web app using AI tools like Bolt, Lovable, and Cursor - no programming needed.
TL;DR -- The Quick Version
Short on time? Here are the numbers that matter and the fastest path to your first app.
| Metric | Value |
|---|---|
| Term origin | Andrej Karpathy, February 2025 |
| Developer adoption | 85% of developers use AI coding tools daily |
| Code generation share | 41% of all new code is now AI-generated |
| Market size | $2.96 billion (2025), projected $325 billion by 2040 |
| Productivity impact | 74% of developers report measurable gains |
| Time to first app | 1-2 hours with browser-based tools |
| Coding required | None for this tutorial |
Fastest path: Create a free Bolt.new account, paste the example prompt from Step 3 below, and iterate from there. Total time: under 2 hours from zero to deployed app.
What If You Could Just Describe an App and Watch It Appear?
Here is something that would have sounded absurd two years ago: a jewelry shop owner with zero coding experience built a custom sales app in six weeks. It generated more revenue than her entire previous year selling at craft markets. A personal trainer launched a fitness app that hit thousands of downloads in its first month. A restaurant owner created her own ordering system that boosted sales by 40%.
None of them wrote a single line of code. They described what they wanted, and AI built it for them.
This is vibe coding. Collins English Dictionary named it the Word of the Year for 2025. MIT Technology Review listed generative coding among its 10 Breakthrough Technologies for 2026 -- the same list that previously identified CRISPR and mRNA vaccines before they changed the world.
The term was coined by Andrej Karpathy -- co-founder of OpenAI and former head of AI at Tesla -- in a February 2025 tweet. He described it as "a new kind of coding where you fully give in to the vibes, embrace exponentials, and forget that the code even exists." He was talking to an AI editor through a microphone, accepting whatever code it produced without reading a single line.
That tweet went viral. Then it went mainstream. Today, 85% of developers use AI coding tools daily, and 41% of all code written globally is now AI-generated. The vibe coding market hit $2.96 billion in 2025 and is projected to reach $325 billion by 2040. Building software by describing what you want is no longer a party trick -- it is a $3 billion industry growing at exponential speed.
But here is the part that matters to you: you do not need to be a developer to do this. By the end of this tutorial, you will have built and deployed a real, working web app. No prior coding experience needed. Just you, a browser, and about two hours.
What You Will Learn
After completing this tutorial, you will be able to:
- Choose the right vibe coding tool for your skill level and project
- Write effective prompts that produce usable apps (not gibberish)
- Build and deploy a working expense tracker from scratch
- Avoid the five mistakes that trip up every beginner
- Know when vibe coding is enough and when you need a real developer
Time needed: About 2 hours for your first app Difficulty level: Absolute beginner Requirements: A computer, a web browser, and a free account on Bolt.new
Step 1: Pick Your Tool (and Do Not Overthink This)
The vibe coding landscape in 2026 has split into two clear categories, and understanding which one you belong in will save you a lot of frustration.
AI App Builders (Browser-Based, Zero Setup)
These are tools designed for people with zero coding experience. You open a browser tab, type what you want, and the AI builds everything -- frontend, backend, database -- right there in your browser. No downloads. No terminal. No mysterious error messages about missing dependencies. Think Google Docs, but instead of writing a document, you are describing an app.
AI-Native Code Editors (IDE-Based, Some Setup)
These are souped-up code editors built for developers or people willing to learn. Tools like Cursor, Claude Code, and Windsurf are incredibly powerful -- they understand entire codebases, can work across multiple files, and support complex architectures. But they assume you know what a repository is and are comfortable with a terminal. If you have never coded before, these are not your starting point. They are where you graduate to.
Here is a quick cheat sheet:
| Tool | Monthly Cost | Best For | Setup Required |
|---|---|---|---|
| Bolt.new | Free - $30 | Fastest prototyping, total beginners | None (browser) |
| Lovable | Free - $50 | Beautiful UIs, design-focused founders | None (browser) |
| Replit | $20 - $100 | All-in-one platform, students | None (browser) |
| v0 | Free - $20 | React/frontend components | None (browser) |
| Cursor | Free - $200 | Professional developers | Install IDE |
| Claude Code | $17 - $200 | Terminal-native developers | Install CLI |
Which Tool Should You Pick?
If the table above leaves you unsure, use this decision framework:
| Your Profile | Recommended Tool | Why |
|---|---|---|
| Never coded, want fastest results | Bolt.new | No setup, instant deploy, generous free tier |
| Never coded, care most about design | Lovable | Best-looking output, modern React + Tailwind |
| Student or hobbyist, want to experiment | Replit | All-in-one with Agent 3 autonomous mode |
| Some tech background, want more control | Cursor | Professional-grade with approachable learning curve |
| Building something complex, long-term | Cursor or Claude Code | Scalable architecture, version control, agent teams |
For a deep dive into the developer-focused tools, check out our Cursor vs Copilot vs Claude Code comparison.
For this tutorial, we are using Bolt.new. It has a free tier generous enough to build a complete app, requires zero setup, and gets you from idea to deployed URL faster than anything else. Once you are comfortable, you can graduate to more powerful tools.
Go to bolt.new and create a free account. That is it. You are ready.
Step 2: Plan Before You Prompt (This Is the Step Everyone Skips)
I know. You are excited. You want to jump straight in and start typing prompts. But here is something the AI will not tell you: it stacks new logic on top of whatever you already gave it. It does not go back and rebuild the foundation. So if you start with a vague, half-formed idea and keep bolting on features, you end up with a Frankenstein app that sort of works but is impossible to fix.
Take five minutes to answer three questions:
- What does the app do? (One sentence. If you need more than one sentence, you are building too much.)
- Who is it for? (You? Your team? Paying customers?)
- What data does it need to store? (User accounts? Numbers? Text? Images?)
For our tutorial, here is the plan:
App: Personal Expense Tracker User: Just me (single user, no login needed) Data: Expenses with amount, category, date, and a note. Monthly totals and category breakdowns on a dashboard.
That is your "App Brief." It might seem too simple, but this tiny bit of upfront thinking will make every prompt you write from here on dramatically better. The difference between vibe coding that works and vibe coding that frustrates you is almost always the planning step.
Pro tip: If you are building something more complex, try asking ChatGPT or Claude to help you write a simple Product Requirements Document (PRD) first. Describe your idea in a paragraph, ask the AI to structure it, then use that structured plan when you start building. For more on writing effective AI prompts, check out our prompt engineering guide.
Step 3: Write Your First Prompt (The Moment of Truth)
Here is where the magic happens. And the key insight most beginners miss is this: describe what you want the app to do, not how to build it. You do not need to mention React, databases, or APIs. That is the AI's job. Your job is to be a clear communicator.
Open Bolt.new and paste this prompt:
Build me a personal expense tracker web app with these features:
1. A form to add expenses with: amount (dollars), category (dropdown: Food,
Transport, Entertainment, Shopping, Bills, Other), date, and an optional note
2. A dashboard showing:
- Total spending this month
- A bar chart breaking down spending by category
- A list of recent expenses (most recent first) with the ability to delete them
3. Data should persist in the browser (localStorage) so I don't lose my expenses
when I close the tab
4. Clean, modern design with a dark color scheme
5. Mobile-friendly layout
Hit enter and watch.
Within 30-60 seconds, Bolt will generate an entire application. You will see files appearing in the code editor on the left and a live preview on the right. There will be a form. A chart. A list of expenses. A working app.
What just happened? The AI read your description, chose appropriate technologies (likely React with a charting library), wrote hundreds of lines of code across multiple files, wired everything together, and rendered it live in your browser. You described a vibe. The AI coded it.
Does it look exactly like what you imagined? Probably not. And that is perfectly fine. Vibe coding is not about getting perfection on the first try. It is about getting something real that you can refine.
If something went wrong: Do not panic. Just describe what you see: "The chart is not showing up" or "I get an error when I click the add button." Paste the error message if there is one. The AI will fix it. This back-and-forth is vibe coding.
Step 4: Iterate and Refine (Where Vibe Coding Gets Fun)
You have a working app. Now you have opinions about it. Maybe the chart colors are ugly. Maybe you want to edit expenses, not just delete them. Maybe you need a "this month vs last month" comparison. This is the iterative loop that makes vibe coding genuinely powerful.
The golden rule: one change at a time. Resist the urge to paste a laundry list of twelve improvements in one prompt. Each refinement should focus on one thing:
Refinement 1 -- Make the dashboard more useful:
Add a "this month vs last month" comparison to the dashboard. Show the
percentage change (up or down) next to the monthly total. Use green for
decrease and red for increase in spending.
Refinement 2 -- Improve the expense form:
Add the ability to edit existing expenses. When I click on an expense in the
list, open the form pre-filled with that expense's data so I can update it.
Refinement 3 -- Add data export:
Add a "Download CSV" button at the bottom of the expense list that exports
all my expenses as a CSV file I can open in Excel.
Refinement 4 -- Handle edge cases:
Add these small but important improvements:
- When deleting an expense, show a confirmation dialog first
- If no expenses exist yet, show a friendly empty state with a message
like "No expenses yet -- add your first one above!"
- Make sure the amount field only accepts positive numbers
- If the date field is left empty, default to today's date
After each prompt, check the live preview. Click around. Add a test expense. Delete it. Try the new feature. Does it work? Great, move to the next one. Does it break something? Tell the AI what broke: "After adding the edit feature, the delete button no longer works. Can you fix that?"
What to Expect at Each Stage
Here is a rough guide to how your app should progress through refinement:
| Stage | Feature Completeness | Visual Polish | Edge Cases Handled |
|---|---|---|---|
| After initial prompt | 70-85% | 50-60% | 10-20% |
| After Refinement 1-2 | 90-95% | 60-70% | 20-30% |
| After Refinement 3-4 | 95%+ | 80-90% | 70-80% |
| After 6-8 total prompts | 95%+ | 90%+ | 85%+ |
This generate-test-refine loop is the heartbeat of vibe coding. You are not writing code. You are having a conversation with an AI that writes code. And like any good conversation, it works best when both sides communicate clearly.
Warning: After 10-15 refinement rounds, your app might start behaving strangely as accumulated changes create unexpected interactions. If that happens, it is sometimes faster to start fresh with a better initial prompt that incorporates everything you learned. Think of your first attempt as a rough draft, not the final product.
Step 5: Deploy Your App (Yes, for Real)
Your expense tracker works. It looks decent. You have added the features you care about. Now let us put it on the actual internet where you (or anyone) can access it from any device.
In Bolt.new, click the Deploy button. That is literally it. Bolt will give you a URL like your-app-name.bolt.new where your app is now live. You can open it on your phone right now. Bookmark it. Share it with a friend. You just built and shipped a web application.
Want a custom domain? Bolt Cloud and most other platforms let you connect your own domain (like expenses.yourdomain.com) on paid plans. But for now, the free URL works fine.
Deployed vs. Production-Ready: Know the Difference
This distinction trips up a lot of new builders, so here is the short version:
| Deployed | Production-Ready | |
|---|---|---|
| Meaning | Live on the internet, accessible via URL | Tested, secured, scalable, reliable |
| Authentication | None or basic | Proper login, session management, role-based access |
| Data storage | Browser localStorage | Server-side database with backups |
| Security | Basic (whatever the AI generated) | Hardened (penetration tested, secrets managed) |
| Who should use it | You, friends, small team | Paying customers, general public |
Your app right now is deployed. It is not production-ready. For a personal expense tracker, that is perfectly fine. For something you want to charge money for, you will need more work.
Take a second to appreciate what just happened. You went from "I have never written code" to "I have a deployed web application" in about two hours. A few years ago, this would have required months of learning HTML, CSS, JavaScript, a framework, and deployment tools. Vibe coding collapsed that entire learning curve into a conversation.
The Security Checklist Every Vibe Coder Needs
Here is the uncomfortable number: 45% of AI-generated code contains security vulnerabilities, according to a Veracode study that tested 100 leading AI models across 80 coding tasks. AI-generated code has a 2.74x higher vulnerability rate than human-written code.
That sounds alarming. But context matters. If your app is a personal expense tracker that only you use, and the data lives in your browser's localStorage, the risk is minimal. If you are building something that handles other people's personal data, credit card numbers, or medical records, you need to be much more careful.
Here is a five-point checklist before you share any vibe-coded app publicly:
- No hardcoded secrets. Search the generated code for anything that looks like an API key, password, or token. If you find one, move it to an environment variable.
- Test authentication. If your app has login functionality, try accessing protected pages without logging in. You would be surprised how often AI leaves admin routes unlocked.
- Review permissions. Can users see or modify data that is not theirs? Click around as if you were a malicious user trying to break things.
- Use environment variables. Never paste API keys or credentials into your prompts. Use
.envfiles or the platform's secrets manager instead. - Know your risk level. Use the table below to decide how much caution you need.
Risk Levels by App Type
| Scenario | Vibe Coding Alone | Developer Review Recommended |
|---|---|---|
| Personal tools, experiments, prototypes | Ship freely | Not needed |
| Internal dashboards (non-sensitive data) | Generally fine | Recommended |
| Client-facing demos and MVPs | Acceptable for demos | Required before real users |
| Apps processing payments | Not sufficient | Required |
| Healthcare or PII applications | Not sufficient | Required |
| Apps with user authentication at scale | Not sufficient | Required |
The sweet spot for vibe coding is building things that are useful but not life-or-death. Internal tools, prototypes, personal projects, portfolio sites, side businesses -- all fair game. Banking apps and healthcare platforms? Hire an engineer.
Five Mistakes Every Beginner Makes (and How to Dodge Them)
After researching hundreds of community posts, Reddit threads, and developer forums, the same five mistakes come up over and over.
Mistake 1: The Wall of Text Prompt
What happens: You write a 500-word prompt describing every feature, screen, and interaction at once. The AI produces something riddled with bugs because it tried to process too many conflicting requirements simultaneously.
The fix: Start simple. Your first prompt should describe an app so simple it almost feels embarrassing. You can always add complexity. You cannot easily remove it.
Mistake 2: Never Looking at the Code
Karpathy's original definition of vibe coding was about "forgetting the code even exists." That is fine for throwaway experiments. But if you are building something you actually want to use, glancing at the code occasionally saves you from invisible problems -- hardcoded passwords, API keys in plain text, or files with names like test_DELETE_THIS.js.
The fix: Spend 30 seconds scanning the generated code after each major feature addition. You are looking for anything suspicious, not trying to understand the programming logic.
Mistake 3: No Version Control
You are ten prompts deep. The app is working great. You add one more feature and everything breaks. You want to go back to the version that worked five minutes ago, but there is no "undo" beyond Ctrl+Z.
The fix: Use the GitHub integration. Bolt, Lovable, and Replit all support syncing with GitHub. After every milestone that works, commit your changes. Think of it as saving your game before a boss fight.
Mistake 4: Building Without a Plan
This is the "Step 2 that everyone skips" coming back to haunt you. Without a clear App Brief, you end up with scope creep -- adding features on a whim, changing direction mid-build, and ending up with a confused app that does six things poorly instead of one thing well.
The fix: Write your three-question App Brief before touching any tool. What does it do? Who is it for? What data does it store?
Mistake 5: Skipping the Click-Through
You see the live preview update. The new feature appears in the UI. It looks right. Ship it! Except you never actually clicked the button, filled out the form, or tested the edge cases. And the "working" feature silently breaks three other things.
The fix: After every refinement, do a full click-through. Add data. Edit data. Delete data. Try weird values (negative numbers, empty fields, extremely long text). Resize to mobile. Two minutes of testing saves twenty minutes of debugging.
What Comes Next: From Vibe Coding to Building Real Products
You have built your first app. You are hooked. Where do you go from here?
Karpathy himself has already moved on from the term he coined. In February 2026, he introduced "agentic engineering" -- "the new default is that you are not writing the code directly 99% of the time. You are orchestrating agents who do and acting as oversight."
In practical terms, the progression looks like this:
| Stage | What You Do | Tools | What You Build |
|---|---|---|---|
| Vibe Coding (you are here) | Describe what you want in plain English | Bolt.new, Lovable, Replit | Prototypes, landing pages, simple apps |
| Guided Development | Direct AI with specific instructions, review output | Cursor, Windsurf | Full CRUD apps, dashboards, SaaS MVPs |
| Agentic Engineering | Orchestrate multiple AI agents on different parts | Claude Code Agent Teams, Cursor | Complex multi-component systems |
| AI-Augmented Engineering | Write code alongside AI, deep architecture work | Any IDE + AI, Claude Opus 4.6 | Production systems, scalable platforms |
You do not have to climb this ladder. If Bolt and Lovable get the job done, stay there. The entire point of vibe coding is that building software is no longer gatekept by programming knowledge. You have an idea? You can build it. Today.
But if you do want to level up, here is a practical next step: try rebuilding your expense tracker in Cursor ($20/month). You will immediately see the difference -- more control over file structure, real version control, and the ability to connect external databases and APIs. Understanding which AI model powers your tools will also help you make smarter choices as you take on more ambitious projects.
MIT Technology Review put it best: "Powerful new AI tools have given even people with little to no knowledge of coding the ability to knock up impressive-looking apps, games, websites, and other digital projects using little more than a series of prompts."
That is not a prediction about the future. That is a description of what you just did.
Ready-Made Prompt Templates
Copy these and customize the bracketed sections for your own projects.
Template 1: Simple App Starter
Build me a [type of app] web app. It should:
1. [Core feature - the one thing it must do]
2. [Secondary feature]
3. [Third feature]
Data should persist using localStorage.
Use a clean, modern design with [color preference].
Make it mobile-friendly.
Template 2: CRUD Application
Build a [type] management app where I can:
1. Create new [items] with these fields: [field 1], [field 2], [field 3]
2. View all [items] in a sortable, searchable table
3. Edit existing [items] by clicking on them
4. Delete [items] with a confirmation dialog
5. Filter [items] by [filter field]
Data stored in browser localStorage.
Clean, modern design with sidebar navigation.
Mobile-friendly layout.
Template 3: Refinement Prompt
In the app we just built, I want to change [specific part].
Currently it [describe current behavior].
Instead, it should [describe desired behavior].
Keep everything else the same.
Template 4: Bug Fix Prompt
Something is broken. When I [action you took], I expected
[what should happen] but instead [what actually happened].
[Paste any error message here if you see one.]
Please fix this without changing the rest of the app.
Troubleshooting Common Issues
If things go sideways during your build, here are the most common problems and how to solve them.
| Problem | Likely Cause | What to Do |
|---|---|---|
| App shows blank white screen | JavaScript error in generated code | Tell the AI: "The app shows a blank screen. Check the console for errors and fix them." |
| Feature works in preview but not after deploy | Environment-specific code or missing build step | Redeploy, or ask: "The app works in preview but not when deployed. Can you check the build configuration?" |
| AI keeps changing things you did not ask for | Prompt too vague about scope | Add: "Only modify [specific section]. Do not change [other sections]." |
| Chart or visual component not rendering | Missing library or incorrect data format | Ask: "The [chart/component] is not showing. Please check the library import and data format." |
| Mobile layout is broken | CSS not responsive | Add: "Make sure all sections stack vertically on mobile screens and no content overflows horizontally." |
Last updated: February 2026. Tested with Bolt.new, Lovable (free tier), and Cursor Pro.