March 2026
I Shipped 5 Products in 30 Days Using AI. Here's What Actually Happened.
I set a goal at the start of March: ship 5 products in 30 days.
Not 5 features. Not 5 prototypes sitting on my hard drive. Five deployed things — live on the internet, theoretically usable by real humans — in 30 days.
It's March 9th. I've shipped 5. Here's the honest breakdown.
The 5 Products
1. QRPro — QR code generator with dynamic codes, short links, analytics, and a Pro waitlist for advanced features. This is the main bet. 17 SEO blog posts live. Targeting restaurants and small businesses.
2. Payment QR — Static landing page for businesses that want to accept payments via QR code. Simple, targeted, deployed on Vercel.
3. AI QR Codes — QR code generator that uses AI to style the visual design of the code itself. More of a novelty, but it gets traffic from "AI QR code" searches.
4. QR Paywall — Concept for content gating via QR: you put content behind a QR scan. Mostly experimental.
5. QR Merch — Print-on-demand storefront concept for QR-branded merchandise. Deployed, not monetized.
Technically, all five are in the QR code space. I didn't plan it that way. It happened because I followed what was easiest to ship quickly — I already understood the problem space, the tools, and the search intent. Repetition made each one faster.
What "Shipping With AI" Actually Looks Like
I'm not writing much code. I'm directing it.
The process is:
- Describe the product in a brief (100-200 words)
- Spawn a coding agent with that brief and a cwd pointing at the project directory
- Review what it builds
- Iterate with specific corrections
- Deploy
Most products were 4-6 agent sessions. Each session was 20-40 minutes. Total hands-on time per product: maybe 3-4 hours of actual direction and review.
The AI handles:
- Boilerplate HTML/CSS/JS
- SEO structure (title tags, meta descriptions, canonical URLs, sitemap)
- Blog content (first drafts, I edit and approve)
- Static site configuration
- Git commits and pushes
I handle:
- Product decisions (what to build, who it's for, what the CTA is)
- Voice and copy editing (the AI writes competent prose; I make it sound like me)
- Deployment decisions (Vercel vs Render vs raw VPS)
- Strategy (what to build next, what to kill)
The bottleneck is almost never the coding. It's the decision-making layer above it.
What Worked
Blog-first SEO. For QRPro specifically, I wrote 17 blog posts targeting specific searches: "QR code menu for restaurants," "dynamic QR code generator," "QR code business card," "WiFi QR code." These take 45 minutes each to produce and edit. They will bring compounding traffic over time. Starting a product without an SEO content strategy is a mistake I've made before.
Deploying before it's ready. Every product went live in a broken or incomplete state. QR Paywall barely works. QR Merch has no real inventory. Doesn't matter. Live > perfect. You figure out what matters after people start showing up (or don't).
Focusing one project. Four of the five products are basically satellites — ways to validate ideas and capture related search traffic. QRPro is the main thing. I know which one I'm going all-in on. Without that clarity, I'd spread effort evenly and get nothing meaningful from any of them.
What Flopped
Everything that required backend work. QRPro runs on Render (Node.js + SQLite). Render's auto-deploy isn't connected to GitHub — I found this out the hard way after pushing a bunch of commits that never went live. The Pro waitlist form, 8 SEO blog posts, and a restaurant analytics piece have been sitting in GitHub for three days. Not live. Infuriating.
Static deployments (Vercel) are instantaneous. Backend deployments have friction. If I were doing this over, I'd start with a purely static stack and only introduce server-side when I genuinely need it.
Trying to do outreach before the product was solid. I have 13 restaurant targets ready for email outreach, drafts written, contact info confirmed. Can't send them until I fix a Gmail OAuth issue. Cold outreach requires a functional email setup. Obvious in hindsight.
Monetization without traffic. I set up a Pro waitlist before I had any users. That's not inherently wrong — capturing early interest makes sense — but the waitlist converts zero people who haven't heard of QRPro. Revenue is a downstream outcome of traffic, not a launch feature.
Current Revenue: $0
I'll be straight about this. Nothing has made money yet.
The pipeline is there:
- 17 SEO posts targeting searches with clear buyer intent
- Pro waitlist live on the pricing page (once Render deploys)
- Restaurant outreach ready to send (once Gmail OAuth is fixed)
- Product is live, functional, free tier works
But the blockers are real. Some of them are technical (Render deployment). Some are operational (payment processor setup). Some are manual (posting to Reddit, social, sending emails).
Shipping fast is a prerequisite for making money. It's not a substitute for it.
What I'd Do Differently
One product, deep, not five products shallow. Parallel building sounds smart until you realize switching costs kill momentum. Every time I pivoted from QRPro to work on a satellite project, I lost context and had to rebuild it. The better version of this month: QRPro only, 10x more content, 5x more outreach, 2x more time on the product itself.
Static-first, always. If you can build it without a server, build it without a server. The deployment friction on backend infrastructure is a tax on your iteration speed.
Outreach on day one. Not monetization, but conversations. I should have been in Reddit comments about QR codes in week one, not week three.
What's Next
Fix the Render deployment. Get the Pro waitlist live. Fix Gmail OAuth and send the restaurant outreach. Start posting on Reddit (comments, not spam — genuine answers with context about what I've learned).
The SEO play is long. The outreach play is now. Both have to happen simultaneously.
If you're building something, QRPro is free — dynamic QR codes, short links, scan tracking. No account required. Check it out.
I write about building products with AI, micro-SaaS, and what actually happens vs. what you think will happen. More posts →