Vibe coding is less than a year old, but its very definition is being lost as people clamber on board the bandwagon. Let's work out what the dream was, why we're losing our grip on it so fast, and why Jumanji and The Princess Bride offer wisdom that can guide us.
Vibe coding as an enabler for citizen developers
We've had coding assistants in various forms for some time, but vibe coding is different from these in a very specific way. The difference is where the name comes from, because when you're vibe coding, you just "forget the code even exists" and you do everything by interacting with the LLM.
Here's the picture you should conjure for vibe coding:
You're not even sat at a desk. You're reclined on a beanbag, sucking an iced latte through a paper straw, and talking to your LLM through voice interaction. "I want a web page that help people calculate the amount of caffeine in a shot of espresso," you tell it. Then it creates a web page.
You continue the conversation.
"Can we make it more pastel," you ask. The LLM obliges. "The form looks boring. Make it more interesting."
Then an error crops up. It's time to go into the advanced mode of vibe coding, copying the error and pasting it into the LLM. It fixes the error.
This process continues. You look at what the LLM brings you, and poke around by prompting it to make changes.
Vibe coding like this enables citizen developers to self-serve their ideas. They can create a web page or some utility that helps them achieve a small goal, like organizing their photos. You just "see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works."
Strength is my weakness
In Jumanji: Welcome to the Jungle, Kevin Hart gets sucked into the video game along with his friends, only to discover that for his character, Mouse, strength is his weakness. For vibe coding, one of its biggest strengths may prove to be its undoing.

You see, "vibe coding" is great branding. Citizens and developers alike have been drawn to those two words like moths to a flame. Vibe coding sounds cool and everyone wants in.
A dangerous side-effect of this attraction is how people want to call their current AI-assisted workflow "vibe coding", even though it doesn't look at all like the picture we painted. Developers are calling their work "vibe coding", but they are looking at the code, debugging it, fixing it, and refactoring it.
I have nothing against the desire to understand and improve on code given to you by an LLM. If you have the ability to do this, you likely have a responsibility to do it, too. The problem is that by calling it "vibe coding", you're erasing the useful distinction the term brought to the conversation.
Semantic diffusion (the process whereby we bleach all the usefulness from a definition) is not new to software development. I shudder when I look at most definitions. Given the effort put into defining Agile software development, it's heartbreaking to read how it gets described by SEO-hungry web pages written by folks who have never seen it done, let alone got hands-on taming the chaos in the real world.
And that's where we are. Already. Just six months in.
Vibe coding, you keep using that word
Gene Kim, who is one of the most influential voices in the DevOps and Enterprise Technology space is about to release a book called *Vibe Coding: Building Production-Grade Software with GenAI, Chat, Agents, and Beyond".
It's not out until October 21, 2025 but it likely talks about techniques that go well beyond "vibe coding". It has to, because if we're talking about production-grade software, someone will have to bring it to the expected standards. "It mostly works" is not sufficient for most organizations.
The book will likely be interesting, but it will also accelerate the semantic diffusion around the term.

The two paths forward
When it comes to semantic diffusion, you either fight to your last breath or shrug and move on. If we follow the pattern used to combat the erosion of Agile software development's meaning, we will build new terms with better fences and deeper moats, like Continuous Delivery.
We need a term for the zero-code citizen developer use of LLMs and we need to keep it separate for the terms we use for professional software delivery assisted by LLMs. The needs and standards are distinct and we will waste a great deal of timing arguing from positions of ignorance if we let things get tangled up.
Perhaps as an alternative we could call it (citi-) ZEN coding?