I Could Have Built This in 4 Hours (?). I’m Glad I Didn’t. - Indie Hackers
Join
Like
Bookmarks
Comments
Vibe coding is great for demos. But ‘it works’ is just the beginning.<br>In my last post, I talked about turning a decade-old PHP QR code generator into a WordPress SaaS plugin. One detail I glossed over: the QR engine itself was already solid, tested, and selling for years on CodeCanyon. Wrapping it into a proper WordPress plugin with native billing and a real user infrastructure still took about a year.<br>But the plugin was only part of it.<br>Building while the ground was shifting<br>While I was developing QRcdr PRO, something else was happening in the background: the marketplace I’d relied on for over a decade was quietly changing shape. Envato — which had been the primary distribution channel for the original PHP script — was deprioritizing CodeCanyon in favor of its subscription product, traffic was declining, and discovery was getting harder.<br>I wrote about this in detail in a separate post, but the short version is: the solid customer base that CodeCanyon had provided for years was no longer something I could count on.<br>That meant the year wasn’t just about building the plugin. It was also about building the infrastructure to sell it — a new shop, direct billing, license management, all the things a marketplace had previously handled invisibly. QRcdr PRO launched in parallel with rebuilding my entire distribution from scratch. That’s a different kind of year than “I had a working codebase and added a payment layer.”<br>The 4-hour build flex<br>Lately, dev communities are full of the same post: “I built a full SaaS in 4 hours with AI.” Sometimes it’s genuinely impressive as a demo. Sometimes it’s a working prototype. What it rarely is, is something that’s been stress-tested against the boring stuff that actually matters once real users and real money are involved: edge cases, what happens when two features interact in a way nobody planned for, what happens at 10x the load you tested with.<br>None of that shows up in a 4-hour demo, because none of that shows up until later — usually right when you can least afford it.<br>Old school, not anti-AI<br>To be clear, this isn’t an anti-AI take. I use it every day. But there’s one place I stayed old school.<br>I want to know exactly what is happening inside my application. “As long as it works” feels like a finish line. In a rapid 4-hour build , it is actually a dangerous starting point.<br>The week I had to reset everything<br>More than once, I paid for moving too fast — and most of the time, looking back, it came down to me, not the tool. A vague prompt instead of a precise one. Pointing the AI at one file or directory and forgetting to mention the other places that same logic touched. The AI did exactly what it was asked; the ask just wasn’t complete. Twice that turned into a full reset, hours of work thrown away. A solution that quietly over-engineered something with a much simpler answer, or a change that “fixed” one spot while breaking an assumption elsewhere in the app that hadn’t been flagged.<br>Nothing dramatic in the moment. Just code that looked fine, ran fine on its own, and then didn’t once it touched the rest of the system. Untangling that costs more time than being precise the first time would have — and that’s as much a lesson about my own habits as it is about the tool.<br>The Prompt as a Logic Exercise<br>My workflow eventually evolved into assigning surgical, single tasks. But something unexpected happened: I often found the answer while merely preparing the request.<br>Explaining context and constraints to a machine forces a deep mental review. By the time I finished typing, the source of the bug was usually staring me in the face. The AI hadn’t even processed the text yet, but the clarity was already there.<br>This logical discipline is exactly what the 4-hour build skips. It trades a deep understanding of the system for a quick output that, more often than not, remains hollow.<br>Why this matters for QRcdr<br>QRcdr PRO is exactly the kind of project where cutting corners has a real cost — subscriptions, billing, dynamic content that gets swapped after the QR code is already printed and out in the world. I’m not saying I got everything right the first time. But taking the time to understand what I was building, and why, is the only way I know to limit the damage when something does go wrong. And something most likely will, eventually.<br>Speed is great, but I’d rather still be standing a year from now. Are you leaning into the '4-hour build' for your recent launches, or are you finding that building a sustainable, direct-sales infrastructure still requires a much longer runway?
Nicola Franchini
posted to
QRcdr
Share
Say something nice to veno…
Post Comment