Back to list

Vibecoding: The Hidden Costs

I’ve been seeing recurring patterns lately across projects built through "vibecoding." But first I want to say that I understand, it is undeniably a fast, cheap, and exciting way to build an MVP or a prototype, and it has some very real upsides — it allows people to experiment and bring genuinely interesting ideas to life in record time. But because it feels so much like magic, it’s hard for anyone — especially non-tech people — to see the full picture. Behind a prototype that "works" on the surface, there is often a hidden list of trade-offs and a growing mess that isn't ready for production and is nearly impossible to scale. If you're building with AI, it’s important to understand the reality of what’s happening under the hood.

The Foundation: The "Doesn't Matter" Tech Stack

While any app can be built with almost any stack, the choice isn't just a random combination of languages/libraries. AI rarely plans for the long term; it picks what’s easy to generate or what was popular in its training data, or reflecting something from your initial prompt, not necessarily what’s easy to sustain. We are currently living in an era of subsidized AI intelligence, but that cheap "brain power" won't last forever. Sooner or later, costs will rise, and you’ll need human specialists to take the wheel. In that moment, you'll find that every "it doesn't matter" decision you made during the vibecoding phase has a way of turning into a "f*ck this sh*t" moment for the person trying to support it later.

Architecture: The Allure of Spaghetti Slop

There is a hidden structural cost to how AI thinks. These models have a natural gravity toward simplicity — they love "all-in-one-file" structures and unsplit spaghetti code because it’s easier for them to keep the context in one place. This works perfectly while the AI is only one "reading" the code, it creates massive performance and organization debt. You end up with monolithic files that are a nightmare for human eyes. Even for the AI, this lack of modularity eventually leads to a performance wall that can slow your app to a crawl.

Growth: The Context Collapse and the Inconsistency Trap

Only small projects are easily handled with AI, and the bigger you grow, the harder it is for the model to keep the context. This is where the "slop cycle" begins. A tiny confusion in a prompt generates a small inconsistency, which later confuses the AI further, leading to more inconsistent code. Eventually, the codebase becomes so fragmented that the AI itself can no longer understand what it wrote three prompts ago. You aren't building a cathedral; you're building a Jenga tower where the bottom blocks are starting to melt.

Security: Why AI is Often "Barely Enough"

When it comes to security, AI is fundamentally lazy. It prioritizes "making it work" over "making it safe," usually stopping at the bare minimum. It might give you a basic login, but it isn't thinking deeply about browser vulnerabilities, session exploits, or the long-term risks of data leakage to the AI providers themselves. It’s prioritizing the "vibe" of a working feature over the invisible safety net that keeps your business alive. It’s worth asking yourself: are you really ready to bet your money and your users' data on a bot that doesn't actually understand risk?

Reminds me a joke where someone asked ChatGPT "Is this mushroom edible?".

Infrastructure: The Hidden Budget Drain

This same "path of least resistance" logic applies to infrastructure and deploys. The AI will recommend a hosting provider, a database, or a storage setup based on what’s easiest to prompt, not necessarily what’s best for your budget or your ability to scale. You might find yourself locked into expensive platforms that burn through your seed money much faster than necessary. Or might prevent you from new features being limited in functionality. Without a clear eye on the infrastructure, you might build a beautiful house on a foundation that you can’t afford to keep or expand when the first wave of real users arrives.

Fragmentation: A Hundred Tools, A Thousand Headaches

There are hundreds of different vibecoding setups now — Claude, Codex, Qoder, Zenflow, Gemini, Cursor (with whatever model), Lovable, V0, Bolt, Replit, you name it. Plus all the enchancements, like Conductor, BMad method, Spec-kit, OpenSpec... While they often use the same models under the hood, their different configurations, prompt wrappers, and "efforts" mean the result quality varies wildly. Moving a project from one tool to another often introduces immediate inconsistencies. The "magic" feels different in every tool, and that fragmentation makes it very likely that your code will become a schizophrenia of conflicting styles that no one — human or machine — can easily manage.

The Progress Illusion: Fast Starts and Early Legacies

The most dangerous part of this "fast start" is the delusion it creates for founders. When an MVP comes together in a weekend, it’s easy to assume that the rest of the journey will be just as effortless. In reality, it’s often the opposite. Vibecoding generates an enormous amount of tech debt right out of the gate. You aren't just starting; you’re starting with "instant legacy" code that is frequently overengineered in the wrong places and underengineered where it counts. Often, when you try to move forward, you realize it’s actually easier to just throw it all away and start over.

The Muddle: The Infinite Chase of Cat and Mouse

This reminds me a lot of Gregory Bateson’s metalogue on "why things get in a muddle", where he explains entropy to his daughter. Simply saying, there are more ways for things to be "messy" than "ordered". As you try to vibecode a project further, it becomes more heavy and expensive in token usage, and you end up in an infinite game of cat-and-mouse. You add one new feature, and three old ones stop working. You spend all your energy and money chasing bugs created by the AI’s lack of foresight. By the time you get exhausted and call for help from professional developers, they are often completely overwhelmed by the impossibility of supporting a project that has no logical core.

Marketing vs. Reality: The Addictive Hype Cycle

We have to look critically at the marketing narratives being pushed by AI providers. The stories of "non-devs building viral apps in an hour" are impressive to those who don't know any better, but for experienced engineers, it often feels like hype-driven theatre. The real goal is to get you as excited, delusional, and addicted to the speed of AI as possible. It is the same old story: enjoy the "now" and pay the bill "later". Those who get the most emotional about the magic are often the ones who get caught the deepest in the trap.

Conclusion: Keeping Your Mind Sharp

Vibecoding is a phenomenal tool for brainstorming and prototyping, but we have to be careful not to mistake a "vibe" for an engineered product. It isn't your fault if you didn't see the full picture — the industry is designed to make the surface look perfect. However, to build something that lasts, you have to stay critical. Enjoy the boost that AI gives you, but keep your mind sharp and your expectations grounded. If you don't account for the trade-offs today, you'll be the one paying for them tomorrow.