"Vibe Coding" Is A Stupid Trend
Based on Theo - t3․gg's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.
Vibe coding should mean building while not reading or understanding the generated code—especially not reviewing diffs—and iterating based on running outputs and error messages.
Briefing
“Vibe coding” is being used as a catch-all label for any AI-assisted programming, but its original meaning is narrower—and that mismatch matters because it blurs what these tools are actually good for. In the stricter definition popularized by Andrej Karpathy and reinforced by Simon Willison, vibe coding means building software while effectively ignoring the code itself: generating changes, running the result, and only using feedback like errors to iterate—without reading diffs or treating the code as something to understand and maintain.
The distinction is central. Using AI to help write code—tab completion, inline suggestions, or command-based edits that still require reviewing what changed—doesn’t qualify. The term is reserved for workflows where the developer “forgets the code even exists,” often by hiding it in the UI, refusing to inspect it, and relying on the output (the running app) rather than the implementation. In practice, that can look like using an agentic editor to apply changes, closing files, and pasting error messages back into the chat with minimal context until the system “vibes” its way to a working result. The core claim is that coding and vibe coding are nearly opposites: AI can assist coding, but vibe coding replaces the act of coding with an output-driven loop.
That original intent is now getting diluted. The term is being applied to any AI code generation, and even to books with misleading titles—some promising “vibe coding” while actually describing responsible AI-assisted development for experienced programmers. The frustration isn’t just semantic. If “vibe coding” becomes synonymous with “using LLMs,” it stops being a useful label for a specific tradeoff: speed and low-stakes iteration in exchange for not understanding or maintaining the generated code.
Both commentators argue that vibe coding still has a legitimate place. It’s best for disposable, low-stakes projects where the cost of bugs is limited and where rewriting later is acceptable. The transcript emphasizes practical guardrails: avoid secrets like API keys, watch data privacy, consider network load and third-party API costs, and be careful with usage-based billing that can turn a quick experiment into a large bill. It also stresses that vibe coding shouldn’t be blamed for outages by default; the term is meant for throwing together things that don’t demand production-grade rigor.
Where the approach becomes valuable is learning and momentum. By collapsing “time to first success,” vibe coding can help more people reach that first “smile” moment—seeing a change work quickly—before they hit harder debugging. That lowers the initial barrier to building software, including for non-developers, and can serve as a gateway into deeper engineering later.
Ultimately, the transcript argues for keeping the term precise so it can describe a real workflow: not reading the code, iterating on outputs, and using AI to build quickly when correctness, maintainability, and long-term ownership are not the goal.
Cornell Notes
“Vibe coding” should mean building software while not reading or understanding the generated code—running it, checking outputs, and using errors as minimal feedback to prompt further changes. That’s different from AI assistance like tab completion or inline suggestions, where developers still review diffs and treat code as something to maintain. The term is getting diluted as people apply it to any LLM-based coding and even to books that market “vibe coding” while describing responsible, production-oriented workflows. Keeping the definition sharp matters because vibe coding is a tradeoff: speed for low-stakes, disposable projects, not a substitute for production engineering. Used carefully—with attention to security, privacy, API costs, and billing—it can accelerate learning and help more people reach early wins.
What workflow qualifies as vibe coding under the stricter definition?
How is vibe coding different from “using AI tools to help write code”?
Why does the term “vibe coding” becoming diluted create problems?
When is vibe coding considered acceptable?
What’s the learning benefit of vibe coding?
What “ratio” defines vibe coding in practice?
Review Questions
- How does the transcript distinguish vibe coding from AI-assisted coding using diffs and error-driven iteration?
- List at least four safety or cost risks mentioned for vibe coding and explain why each matters.
- Why does the transcript argue that keeping “vibe coding” as a precise term is important for both learning and expectations?
Key Points
- 1
Vibe coding should mean building while not reading or understanding the generated code—especially not reviewing diffs—and iterating based on running outputs and error messages.
- 2
Tab completion and inline AI suggestions are AI assistance, not vibe coding, because developers still treat code as something to inspect and maintain.
- 3
The term’s usefulness collapses when it’s used for all LLM-based coding; precision helps distinguish tradeoffs between speed and maintainability.
- 4
Vibe coding is best for disposable, low-stakes projects where bugs and vulnerabilities carry limited consequences and where rewriting later is acceptable.
- 5
Security and privacy still matter: avoid leaking secrets like API keys and be mindful of data handling.
- 6
Network and billing risks can be real—AI-driven API calls can increase load/cost and trigger usage-based charges without guardrails.
- 7
Vibe coding can accelerate learning by reducing time to first working result, helping more people reach early confidence before deeper engineering skills kick in.