Andrej Karpathy coined the term in early 2025: "vibe coding" — the practice of describing what you want to a language model, accepting the output, and iterating by feel rather than by reading and understanding the code. The claim is that you don't need to know how to code. You just need to know what you want.
For a certain class of website — a landing page, a portfolio, a simple marketing site — there's real truth to this. For anything that needs to last, scale, or integrate with real systems, the picture is more complicated. Here's what actually happens when you try it.
What Vibe Coding Actually Is
To be precise: vibe coding isn't new. Developers have been using AI code generation since Copilot launched in 2021. What's changed is the capability level and the ambition of the prompts. Instead of "complete this function," people are now prompting "build me a full landing page with a hero, pricing table, and contact form" — and getting back something that actually renders.
The tools enabling this are primarily Cursor (which wraps Claude/GPT-4 in a full code editor), Claude's Artifacts feature (which generates and renders HTML/CSS/JS in-browser), and v0 by Vercel (which generates React components from descriptions). Each has a different sweet spot.
Vibe coding is not "AI does the work." It's "AI writes a first draft that I'm responsible for shipping." That distinction matters enormously when something breaks in production at 2am.
Where It Genuinely Works
Static Marketing and Landing Pages
A five-section landing page with no backend, no CMS, and no dynamic behavior is exactly the kind of thing AI code generation handles well. The structural patterns — hero, features, testimonials, pricing, CTA — are so well-represented in training data that the output is often clean and semantically reasonable on the first attempt.
In practice, you'll still spend time adjusting spacing, refining copy placement, fixing mobile breakpoints, and making the design actually match your brand. But the scaffolding — the HTML structure, the CSS grid layout, the basic responsive behavior — is reliably usable. What used to take a developer two days of boilerplate work can be a starting point in two hours.
Component Prototyping
Vibe coding is excellent for prototyping components you're not sure about. "Build me a pricing toggle that switches between monthly and annual, with a highlight on the recommended plan" — you'll get working code in 60 seconds. It may not be production-ready, but it's immediately testable, which is more valuable at the discovery stage than clean code.
Treat AI-generated components the same way you'd treat a free template: useful as a starting point, not suitable for shipping without a read-through. The structure is usually fine. The edge cases — keyboard navigation, screen reader behavior, error states — are usually not.
CSS and Animation Work
Modern CSS is vast. Scroll-driven animations, container queries, cascade layers, logical properties — most working developers know the syntax for maybe 60% of what's now available. AI code generation excels here because it has essentially complete recall of CSS specifications. Asking for a scroll-driven reveal animation, a sticky header that changes on scroll, or a complex grid layout that would take 30 minutes to write by hand takes 90 seconds to prompt.
Where It Breaks Down
Accumulated Technical Debt
The fundamental problem with vibe coding a full website is that each prompt generates code in a local context. The AI doesn't maintain a coherent mental model of your entire codebase the way a developer does. It solves the immediate problem, often in a way that conflicts with how it solved an earlier problem.
After ten or fifteen rounds of iteration, you accumulate contradictions: duplicate CSS classes with different styles, JavaScript that re-queries the DOM on every interaction, event listeners that stack up without cleanup. The site looks fine. The code is fragile. Any developer you bring in to extend it will need to understand — and probably rewrite — significant portions before they can safely add to it.
Performance Blind Spots
AI-generated code tends to be correct and slow. Not catastrophically slow — but the kinds of optimizations that make the difference between a 65 Lighthouse score and a 90 require intentionality that models don't apply by default. Common issues:
- Images without explicit width/height attributes (causes layout shift)
- Render-blocking scripts placed in the wrong document position
- Unused CSS from frameworks the model defaulted to including
- Font loading without preconnect hints
- Animation code that triggers layout recalculations on every frame
None of these are unfixable, but they require knowing to look for them. A developer who understands performance will catch them in review. A non-technical founder who vibe-coded their site probably won't.
Accessibility Gaps
This is the most underappreciated failure mode. AI-generated code tends to be visually reasonable and accessibility-poor. Missing ARIA labels, incorrect heading hierarchies, interactive elements that don't receive keyboard focus, color contrast that passes on a calibrated monitor but fails on cheaper displays — these are all common in generated output.
This matters for two reasons beyond ethics: accessibility failures are increasingly a legal liability in many jurisdictions, and they're a ranking signal for search engines. A visually polished, semantically broken website is a real risk.
The Professional Workflow
The people getting the most out of vibe coding are not using it to replace development — they're using it to accelerate the parts of development that are low-judgment and high-volume. The judgment stays human.
In practice this looks like:
- Prompt for structural scaffolding and initial layout
- Review the output for semantic correctness before touching visuals
- Prompt for specific components or interactions as needed
- Review each component for accessibility and performance before integrating
- Write final CSS and refinements by hand, because that's where the quality difference lives
The ratio of AI-written to hand-written code in a typical project has shifted significantly — but it hasn't gone to zero, and it shouldn't. The model writes the repetitive structure; the developer writes the parts that require judgment.
What This Means for Clients
If you're a client considering whether to vibe-code your own website or hire a professional: the honest answer is that it depends on what you need the site to do and for how long.
For a landing page you need in 48 hours to test a product idea, vibe coding is entirely reasonable. The costs — technical debt, performance, accessibility — are manageable at that scope and timeline.
For a business website you expect to maintain for three years, grow with your team, integrate with your CRM, and rank in search: the accumulated costs of vibe-coded fragility are real, and they show up as expensive problems six months after launch.
The question isn't whether AI can build your website. It's whether AI can build a website you can maintain, extend, and rely on — and that answer is still: not without human judgment in the loop.
The right mental model: vibe coding is power tools. A power tool in the hands of someone who understands what they're building produces better results faster. In the hands of someone who doesn't, it produces impressive-looking problems quickly.