AI is your copilot (aptly named, GitHub) and you should always be ready to take over command of the aircraft.
A recent study found that experienced developers were 19% slower when using AI coding tools. The kicker? Those same developers believed they were 20% faster. That gap: between how productive AI feels and how productive it actually is is the entire vibe coding conversation in one data point.
I use AI tools every day. Claude Code for maybe 20-30% of my work, VS Code and my own brain for the rest. And I’ve felt that gap firsthand. There are days where I feel like I’m flying and then I look at the clock and realize I spent 45 minutes going back and forth on something I could’ve written in 20.
The productivity gain is real. But it’s not where people think it is.
The Twitter version vs. the real version
The discourse around vibe coding has split into two camps, and both are wrong.
Camp one: people building todo apps in 5-minute demos and declaring that software engineering is over. Camp two: senior devs swearing off AI tools entirely because “real programmers type their own code.” Most working developers are somewhere in the middle: too busy actually shipping to argue about it online.
Here’s my version. I use Claude Code to scaffold new features, write tests, refactor messy Liquid templates. It handles a real chunk of the work. But I’m reading every line it gives me. Every single one. The “vibe” part is that I’m describing what I want in plain English instead of typing every character. The “not vibing” part is that I still have to know if what it gave me is good.
Those two things aren’t contradictory. They’re the whole point.
The typing was never the bottleneck
The biggest misconception about vibe coding is that it means you don’t need to understand code anymore. That you can just prompt your way to a production app and call it a day.
Building the thing was never the hard part. Maintaining it is. Debugging it at 2am is. Understanding why it breaks when a real user touches it in a way you didn’t anticipate. That’s the actual job. And none of that gets easier because an AI wrote the first draft.
If anything, it gets harder. When you write code yourself, you build a mental model of what it’s doing as you go. When AI writes it and you just approve it, that mental model has gaps. You don’t notice the gaps until something breaks and you’re staring at code you technically “wrote” but can’t quite explain.
The METR study I mentioned isn’t just a fun stat. It’s pointing at something real: AI tools make you feel faster because the typing part is fast. But the typing was never the bottleneck. The thinking was. And the thinking still takes the same amount of time, you just don’t notice you’re skipping it until later.
The open-source warning sign
If you want to see what happens when vibe coding goes wrong at scale, look at open source right now.
Daniel Stenberg shut down cURL’s bug bounty after AI-generated submissions hit 20%. Not because AI can’t find bugs ( it can) but because people were pointing AI at the issue tracker and hitting submit without reading what it produced. Mitchell Hashimoto banned AI code from Ghostty entirely. Steve Ruiz closed all external PRs to tldraw.
These aren’t Luddites. These are maintainers of critical, widely-used projects who got buried under confident-sounding contributions from people who never read the codebase. The PRs looked good. The grammar was perfect. The code compiled. And the maintainers still had to spend hours explaining why the approach was wrong, because the person who submitted it couldn’t defend it.
That’s vibe coding without the pilot. All copilot, no one at the controls.
Where the real gain is
So if the gain isn’t “write code faster,” where is it?
For me, it’s exploring ideas faster. I can sketch out three different approaches to a problem in the time it used to take to build one. I can ask “what if we structured it this way instead?” and get a working prototype in minutes, not hours. The speed isn’t in production, it’s in iteration.
It’s also in the boring stuff. Boilerplate, test scaffolding, file conversions, repetitive refactors. The stuff that was never intellectually challenging but ate hours anyway. AI is genuinely great at that, and offloading it frees up time for the thinking work that actually matters.
But here’s the thing nobody talks about: to use AI well for any of this, you need to already know what good looks like. You need to read the output and catch the subtle bug. You need to know when the approach is wrong even though the code runs. You need the fundamentals.
A tool, not a shortcut
I think about this a lot when it comes to junior devs learning through AI tools. And my take is pretty simple: it’s a tool. Use it to ask questions. Use it to learn the system. Ask it to include you in the investigation and learn along the way.
But don’t skip the part where you enrich your own brain. We have incredibly powerful tools right now, and that’s great. Maybe in ten years the relationship between humans and code looks completely different. But right now, understanding the code is still part of the job. There is no shortcut to reading, understanding, and being able to explain what your software does.
And honestly? That part is fun. The learning, the debugging, the moment where something finally clicks. That’s not the chore AI is saving you from. That’s the craft. Skipping it doesn’t make you faster. It makes you dependent.
The one rule
If I had to boil my entire AI workflow down to a single principle, it’s this: AI is your copilot, and you should always be ready to take over command of the aircraft.
Not because the autopilot is bad. Modern autopilot is incredible. But when something unexpected happens (and in software, something unexpected always happens) the person in the seat needs to understand the instruments, the terrain, and the plan well enough to take the controls and land the thing safely.
Vibe coding is real. I do it every day. But the version that works isn’t the one Twitter is selling. It’s not “prompt and ship.” It’s “prompt, read, think, adjust, and ship.” The AI does real work. But you’re still the pilot.
Don’t let anyone tell you otherwise. And definitely don’t let the autopilot tell you, either.
If you want to see vibe coding in production, the careful kind,s we build Shopify apps and integrations at Victoria Garland. The AI helps. The humans decide.