FizzGram is live. Pick a photo, write a note, a real 4×6 postcard gets mailed. Built in evenings. First iOS app I’ve shipped. Apple approved it in under 24 hours. (fizzgram.com)
Claude is the loop. iOS apps are more achievable than ever. Humans in the loop still have to navigate more App Store bureaucracy than they’d like.
The Loop
Claude Code in a side terminal. My iPhone tethered to the Mac. The simulator beside it.
I describe what a screen should do. Claude writes SwiftUI. Build runs. Claude reads the output — compiler messages, simulator pixels, device behavior, log streams, UI test results — and iterates.
iOS apps are very verifiable and testable. The agent exploits that to iterate to good code. It also does a pretty good job sticking to MVVM and services.
The Bureaucracy
Code was maybe half the time. The other half is paperwork.
Claude does fine on the text. Privacy policy, terms of service, EULA, App Store data declarations — all drafted from a description of what your code actually does.
What it can’t do is navigate the App Store Connect web app. Connect is clunky — you can see years of legacy in it. Screenshots at exact pixel sizes, description, keywords, age rating, encryption export compliance, content rights — all clicked through manually. Maybe the Claude browser extension would help here; I didn’t try.
You’ll also probably need a marketing site to host the privacy and support URLs Apple requires. fizzgram.com is Astro on Vercel, mostly to hold those legal pages.
And then: Lob account, Stripe account verification, Apple Developer Program enrollment. Each one a different web form.
The Stack
- App: SwiftUI, iOS 18.6+, Sign in with Apple
- Backend: Cloudflare Workers + D1. Single-digit-ms cold starts
- Payments: Stripe Checkout via the API. About 30 lines. Worker mints a Session, app opens it in
SFSafariViewController, webhook credits the account - Printing: Lob. 300 DPI on heavy cardstock, USPS First Class, 4-7 business days to a mailbox
- Marketing site: Astro on Vercel
If you’d like to try it: fizzgram.com.