Vibe Shaving.
The coder's rabbit hole.
Published Jun 18, 2025 · Around 3 minutes to read
Yak Shaving is when you set out to do one thing, but end up tackling a chain of unexpected, often tedious tasks before you can actually get started.
A classic example: “I want to wax the car today. Oops, the hose is still broken from the winter. I’ll need to buy a new one at Home Depot. But Home Depot is on the other side of the Tappan Zee bridge and getting there without my EZPass is miserable because of the tolls.
But, wait! I could borrow my neighbor’s EZPass… Bob won’t lend me his EZPass until I return the mooshi pillow my son borrowed, though. And we haven’t returned it because some of the stuffing fell out and we need to get some yak hair to restuff it. And the next thing you know, I’m at the zoo, shaving a yak, all so I can wax my car.”
Vibe coding is Yak Shaving.
I’m not a professional developer. So I just let Windsurf YOLO code until it works. The problem with this approach is that I’ll get stuck solving very unrelated problems.
I was recently setting up a simple RAG to chat with my meeting notes. I got my frontend and backend hooked up, and I embedded all of my notes into a Supabase vector database (this is how AI searches for things). But when I asked any questions in my app, the AI kept saying “I don’t know.”
So I started debugging: the AI wasn’t finding any similar documents, so I checked the embeddings which were using the wrong model, so I reworked the document ingestion scripts, which then required me to update the document matching function, which broke the main backend functions, so I fixed that and ran into more logging errors, so…
I spent 3 hours trying to fix this, and all it needed was one simple line: I was calling the wrong search method.
Honestly, I don’t mind the hair pulling. Because I would have never been able to create this before AI-assisted coding. This app would be weeks worth of googling, searching StackOverflow, and endless debugging to get even a simple app simple working.
I got a RAG up and running in a day.
Rapid prototyping: the yaks get shaved faster.
—
P.S. I will say though that coding like this feels wrong: like creating a mockup in Figma by detaching all the components. It’s not maintainable.
READ NEXT