Vibe coding is great, until it isn’t.
I’ve been working on the first app for my 10-app challenge; a simple feedback widget that lets users click emojis to rate your content or new feature. I’m using Ruby on Rails, which is new territory for me, but Rails made the basics surprisingly smooth. Auth integration? Done. Initial widget setup? Built quickly. That’s the power of Rails.
But here’s where I got cocky.
When Confidence Becomes Carelessness
I started out by feeding the AI small manageable tasks. Each success built my confidence until I started handing over bigger and bigger chunks of work. The AI kept delivering, so I kept pushing…until I hit a wall.
Something that should have been simple wouldn’t work. The AI kept going in circles, and when I dove into the code to troubleshoot manually, I realized I had no idea how half of it worked. Going back through commits, I saw the problem: the AI had been adding little bits here and there, and I’d lost control of my own codebase.
The Problem with Stringing Together Vibe Code
Don’t get me wrong, I believe in leveraging AI for coding. Vibe coding is fantastic for prototypes, quick tests, and exploring solutions. But you can’t string together vibe-coded solutions indefinitely. That’s where you get into trouble.
The fix isn’t avoiding AI tools; it’s being more intentional. At each step, you need to understand not just that the feature works, but why the code was added and confirm it only added what you actually needed.
Slowing Down to Speed Up
I stepped back and adopted a more strategic approach. It’s slower, yes, but it’s working amazingly well. I’m still looking for ways to leverage AI agents and slash commands for repetitive tasks, but I’m being deliberate about it.
Here’s the thing that stings: when you’re forced to slow down after moving at AI speed, it feels painfully slow. But when I compare it to pre-AI development, I’m still moving incredibly fast. Authorization that used to take a full day? Now it’s 20 minutes, even on the “slow” path.
We’re All Making It Up
We’re in an open world right now with AI-assisted coding. Nobody has figured out the best practices yet; we’re all experimenting and learning. I love that. We can’t code the way we used to, so we need to find new ways that work.
The key lesson? AI tools have undeniably made us faster, but they also create moments where you have to refactor, step back, and recalibrate. The challenge is remembering that even when you “slow down,” you’re still moving at superhuman speed compared to the old days.
We just need to adjust our expectations of what “fast” really means.
Get Nerd Notes
My wins, flops, & any XP earned.
No Spam. Exit anytime. See you there!