From Template to Production-Shaped: An AI-Native Dev Flow for Go Side Projects A developer built a production-grade QR code generator as a Go side project using a structured AI workflow called "qrspi" (question, research, structure, plan, implement) to avoid the typical scaffolding overhead. The project, available on GitHub at linkc0829/go-qrcode-generator, features hexagonal architecture with strict dependency enforcement through depguard rules that prevent domain code from importing infrastructure packages. The developer documented explicit deviations from the original system design specification, including replacing deterministic token generation with crypto/rand-based base64url tokens to eliminate leak surfaces. I wanted my next side project to look like the kind of code I'd ship at work — hexagonal architecture, sqlc, depguard, integration tests — without the usual side-project tax of spending three evenings on scaffolding before writing the first line of domain logic. So I built it twice. First, I forked a Go backend template I'd been hardening for months. Then I drove every feature on top of it through a structured AI workflow I call qrspi : question → research → structure → plan → implement . The product itself is unremarkable on purpose: a QR code generator. Paste a URL, get back a scannable PNG and a /r/:token redirect, with per-link scan counts and a soft-delete kill switch. The interesting part — the part I'd want a reviewer to look at — is the process that produced it. Repo: linkc0829/go-qrcode-generator https://github.com/linkc0829/go-qrcode-generator . Every artifact mentioned in this post is committed there. Step zero was actually choosing what to build on. I shortlisted several Go backend templates, walked through each one with Claude to pressure-test the architecture, and landed on the one I'd been hardening for a while: linkc0829/go-backend-template https://github.com/linkc0829/go-backend-template . The template is a feature-first hexagonal Go backend. Each feature lives in a single package under internal/