The Real Problem With Vibe Coding

general

The Real Problem With Vibe Coding

Fernando de la Rosa

@jfdelarosa

January 18, 2026

The real problem with vibe coding isn’t the practice.

It’s the term.

“Vibe coding” has become one of those labels that means completely different things depending on who you ask, and that’s where most of the confusion (and pointless arguments) come from.

For some people, vibe coding means:

  • Writing 100% of the code with AI
  • Never reading it
  • Never testing it
  • Shipping whatever comes out and hoping for the best

In that definition, yeah, that’s a terrible idea. You’re not coding. You’re copy-pasting with more steps.

For others, vibe coding means something very different:

  • Programming with AI, not instead of thinking
  • Letting the AI handle boilerplate, setup, repetitive code
  • Staying in flow while still reviewing, editing, and understanding everything
  • Optimizing for speed early, correctness later

That’s just AI-assisted development. And it’s already how a lot of good engineers work.

Same term. Completely different behaviors.

When people say “vibe coding is bad,” they’re usually reacting to the worst possible interpretation of it.

When others defend vibe coding, they’re talking about speed, momentum, and staying creative.

Both sides think they’re right, because they’re arguing against different definitions.

This is why the conversation goes nowhere.

The real question isn’t:

Do you vibe code or not?

It’s:

Do you understand and own the code you ship?

You can:

  • Use AI heavily and still be a responsible engineer
  • Write everything by hand and still produce garbage

The tool isn’t the problem. The lack of understanding and ownership is.

Vibe coding (in the good sense) shines when:

  • You’re exploring an idea
  • You’re building an MVP
  • You don’t yet know if the product matters
  • Speed of learning > code longevity

At that stage, perfect architecture is often just procrastination with extra steps.

It falls apart when:

  • The system is business-critical
  • Other engineers depend on your code
  • You’re dealing with security, money, or scale
  • You treat AI output as “magic” instead of raw material

At that point, “just vibing” becomes technical debt with interest.

“Vibe coding” bundles together:

  • Reckless AI usage
  • Smart AI-assisted development
  • Fast prototyping
  • And sometimes straight-up laziness

That’s why it’s a bad term.

If we were more precise, we’d stop arguing about vibes and start talking about:

  • Ownership
  • Context
  • Tradeoffs

And honestly, that’s what good engineering has always been about.