Tutorials

Vibe Coding Done Right: How to Direct AI Agents Without Producing Slop

L
Luke Needham
13 min read
Vibe Coding Done Right: How to Direct AI Agents Without Producing Slop

The term "vibe coding" entered the mainstream when Andrej Karpathy described a new way of programming — one where you describe what you want and AI handles the implementation. Antigravity has made this approach genuinely practical. Here's what vibe coding actually means in practice, why it works, and how to do it without producing the AI slop that gives the approach a bad name.

The Old Way vs. The New Way

Traditional software development is a translation exercise. You have an idea in your head. You translate that idea into architecture. You translate the architecture into code. You translate the code into tests. Every translation step introduces friction, errors, and delay.

Vibe coding eliminates most of these translation steps. You describe the intent — the vibe — and an AI agent handles the translation to code. Instead of specifying "create a React component that maps over an array of posts and renders each with a title, excerpt, date, and category badge with framer-motion entrance animations," you say "build a blog card grid, make it premium with smooth entrance animations."

The agent understands both instructions. But the second one is faster to express, requires less mental overhead, and — when the agent is good — produces the same result.

Why Most People Get It Wrong

The criticism of vibe coding is legitimate when it's done badly. And most people do it badly. Here's why:

Mistake 1: Vibing Without Context

If you ask an agent to "build a blog page" with no context about your existing codebase, design system, or architecture, you'll get a generic blog page that doesn't fit. Vibe coding isn't an excuse to skip context-setting. The best vibe coders spend 20% of their time ensuring the agent understands the codebase before they start directing.

In Antigravity, this means:

  • Letting the agent read your existing components before creating new ones
  • Pointing it to your design tokens and CSS conventions
  • Referencing existing patterns: "build it like how we did the services page"

Mistake 2: Skipping the Plan

Antigravity has a planning mode for a reason. When you give the agent a complex task, it should first produce an implementation plan — which files it will create or modify, what changes it will make, and how it will verify the result. Review the plan before approving execution.

We've seen developers skip planning to "move faster." They don't. They move faster for 10 minutes, then spend an hour fixing the mess the agent created because it misunderstood the architecture. Plan first. Always.

Mistake 3: No Verification Loop

Vibe coding without verification produces AI slop — code that compiles but doesn't work properly, looks right but has subtle bugs, passes tests that don't test the right things. The verification loop is non-negotiable:

  1. Agent writes code
  2. Agent runs the build
  3. Agent opens the browser and screenshots the result
  4. You review the code AND the visual result
  5. You iterate or approve

The Anatomy of a Great Vibe Prompt

After three months of daily vibe coding, we've identified the structure of prompts that consistently produce excellent results:

1. Goal (What)

"Add a newsletter signup section to the blog page."

2. Context (Where)

"It should go after the blog post grid, before the footer. Look at the existing BlogCard component for styling conventions."

3. Vibe (How It Should Feel)

"Make it premium — glassmorphism card, gradient background, the kind of section that makes visitors think 'this company knows what they're doing.'"

4. Constraints (What It Must Not Do)

"Don't use Tailwind — we use vanilla CSS. Don't add new npm dependencies. Keep the component self-contained."

5. Verification (How to Prove It Works)

"Run the dev server and screenshot the blog page with the new section visible."

That's 30 seconds of typing. The result? A production-ready component that would have taken 45-60 minutes to build by hand. That's not laziness. That's leverage.

When Vibe Coding Doesn't Work

Vibe coding excels at:

  • UI components and styling
  • CRUD operations and data flow
  • Refactoring and code cleanup
  • Test writing
  • Documentation
  • Integration glue code

Vibe coding struggles with:

  • Novel algorithms (things the model hasn't seen in training)
  • Complex state management with subtle race conditions
  • Security-critical code (auth flows, encryption, input sanitisation)
  • Performance optimisation of hot paths

For the second category, switch from vibe mode to pair-programming mode: you lead, the agent assists. Write the critical logic yourself, let the agent handle the boilerplate around it.

The Productivity Reality

We track our output meticulously. Since adopting vibe coding with Antigravity:

  • Feature delivery time: Substantially reduced for UI-heavy work
  • Bug rate: Roughly the same — the agent introduces different bugs than humans do, but not more of them
  • Code quality: Higher on average — the agent is more consistent about error handling, edge cases, and documentation than we are when we're tired
  • Developer satisfaction: Significantly higher — we spend time on interesting problems instead of boilerplate

The developers who dismiss vibe coding as "not real programming" are making the same argument that assembly programmers made about high-level languages. The abstraction level has moved up. Again. The developers who adapt will thrive. The rest will be writing hand-crafted artisanal for-loops while their competitors ship features far faster.

Vibe coding isn't the future. It's the present. Learn to do it well, or learn to compete with people who do.

L

Written by Luke Needham

Founder at Quantum Flow Automation — building AI systems that work.

Stay Ahead

Get AI insights delivered to your inbox

Join forward-thinking business leaders who receive our latest articles on AI strategy, automation, and the future of work.

No spam. Unsubscribe anytime. We respect your inbox.

BOOK CALL