DEV Community

Cover image for Vibe coding produces the silhouette of software, not software
Aditya Agarwal
Aditya Agarwal

Posted on

Vibe coding produces the silhouette of software, not software

It seems like every week there's a new "Here's a full-stack app I made in 48 hours with AI!" screen recording that wows you visually. Then you click the repo link and you're just… staring at a corpse in a suit.

The term "vibe coding" has entered the lexicon. It describes shipping AI-generated code you haven't actually reviewed. You prompt, you accept, you deploy. Vibes.

The Silhouette Problem

There's a metaphor floating around developer forums that nails this perfectly: AI-generated apps are silhouettes of software. From a distance, the shape is right. The outline matches. But there's nothing behind it.

A silhouette of a chair looks like a chair. You still can't sit in it.

These demo apps pass what I'd call the screenshot test. They have auth screens, dashboards, CRUD operations, maybe even a dark mode toggle. But try to do anything slightly off the happy path and the whole thing folds like wet cardboard.

Cargo Cult Engineering

The "I built a Reddit clone in a weekend" genre is cargo cult engineering at scale. It mimics the artifacts of real software — routes, components, database tables — without any of the decisions that make software survive contact with users.

→ No input validation beyond what the framework gives you for free.
→ No error handling strategy. Just silent failures everywhere.
→ No concept of edge cases, race conditions, or concurrent users.
→ No tests. Obviously no tests.

Real software is boring. It's the 200 lines of retry logic around a flaky third-party API. It's the migration script that handles the column rename without dropping production data. It's the argument your team had for three days about whether that field should be nullable.

Vibe coding skips all of that. That's the point. That's also the problem.

The Deletion That Says Everything

A public online thread where veteran developers criticized vibe coding got memory-holed by the mods, apparently. I find that telling.

This is an uncomfortable conversation because it pokes at something the industry wants to believe right now. We want AI to make us 10x faster. But pointing out that "10x faster to a demo" and "10x faster to production" are wildly different claims is a buzzkill. But it's true.

Junior developers are especially vulnerable here. If you've never built software that had to survive a normal Tuesday afternoon with real users, a vibe-coded app genuinely looks complete to you. You don't know what you're not seeing. That's not a character flaw — it's an experience gap. But the gap is real 🔥

What Actually Matters

I'm not anti-AI in coding. I use it daily. The difference is I treat AI output the way I'd treat code from an enthusiastic intern — potentially useful, definitely needs review, occasionally dangerous.

→ AI is great at generating boilerplate I was going to write anyway.
→ AI is terrible at making architectural decisions it doesn't understand the context for.
→ The value of a senior engineer was never typing speed. It was judgment.

Vibe coding removes judgment from the loop and calls it productivity. That's not a workflow improvement. That's a regression dressed up in a time-lapse video 😅

The Real Cost

The silhouette ships fast. Then someone has to maintain it. That someone opens the codebase, sees thousands of lines of AI-generated code with no clear intent behind any of it, and starts over from scratch.

I've seen this happen. The rewrite takes longer than building it right would have in the first place. Every single time.

The demo impressed people. The deploy didn't. Software isn't a screenshot.


I'm curious to know — where do you draw the line between using AI as a tool and letting it drive? Have you ever inherited a vibe-coded project? I'm here for the war stories 👇

Top comments (0)