My Accidental Vibe Coding Nightmare
It’s 2025 and the term of the year so far is “vibe coding”. The term comes from Claude, who has been competing with OpenAI for LLM dominance for the last year or so. Vibe coding means to code without knowing how to code by creating prompts to generate code and then running that code. It’s quite a new concept, so I’d hope there aren’t many production systems that were vibed, but we’ll see if that changes. On the positive side, it allows people with ideas and no coding experience to build things. For simple projects, I think vibe coding could really take off, but as things start to become complex, I’d imagine there are diminishing returns and debugging will become your personal hell.
How Did I End Up in Vibe Coding Hell?
So how did I, a person who can code, end up accidentally in vibe coding hell? Well, it started when I noticed that Chrome had blitzed a bunch of testing tools from the extension store because they didn’t follow certain standards. The one I was looking for on this particular occasion was Bug Magnet. It’s a really cool extension that gives you the ability to quickly add interesting test scenarios to web forms.
When I noticed that Bug Magnet was gone, I thought it would be cool to see how easy (or difficult) it is to make my own Chrome extension. I did some research on Chrome extension development and, with my limited JavaScript knowledge, I began building.
The Descent Into Vibe Coding
It started off pretty easy, once I knew the terminology, and I got an extension working in a few minutes with a context menu that could eventually work like Bug Magnet. At some point, I thought I’d ask ChatGPT to help me build out a larger nested context menu, which got even deeper. Before I knew it, I was asking ChatGPT for suggestions of what other cool things to add.
I got to a really nice place, where I had basically the whole project running locally. There were boundary values, common usernames, weird characters, SQL injections, XSS scripts—you name it. Then, ChatGPT started doing something really strange. It started suggesting features to add, but only built the skeleton of those features. It asked me to elaborate further if I wanted these features. Some of the features were really cool, albeit a little pointless, but I opted to try them anyway. I ended up with search options and a flashy UI, which I thought kind of worked... until it didn’t.
Vibe Debugging Begins
Then the fun kind of stopped, and vibe coding ended—vibe debugging began. This is the obvious issue with LLM-assisted coding. ChatGPT led me out into the river and when it could no longer swim, it stole my arm-bands, smacked my arse, and said “good luck, kiddo.” From that point on, I could never get the fucking thing to work. The deeper I went into debugging the code, the less I understood about what the hell was going on. JavaScript wasn’t helping either… When you need vital information on an obvious error, you can always count on JavaScript to give you crumbs.
After a few hours of pissing about, I got so fed up with debugging that I gave up on the whole thing altogether. I found that someone else had built a knock-off Bug Magnet that was identical, and I just left the project to rot.
The Takeaway
Vibe coding is really 90% vibe debugging, and vibe debugging sucks.