In Field Notes #1 we said the bet is: AI does the production work, a human owns the quality gate. This is the same bet, one layer down — applied to the single thing that decides whether anyone installs an app: its screenshots.
Why screenshots, specifically
We have apps live with plenty of impressions — Apple shows them in search — but almost no taps. When we pulled the numbers, the leak wasn’t reach. It was the moment of the impression: people see the listing and scroll past. On the App Store, the first two or three screenshots carry most of that decision, and it happens in about seven seconds.
So screenshots aren’t a finishing touch. For a studio shipping a whole portfolio, they’re infrastructure — and they were the most manual, error-prone thing we did. Boot a simulator, fiddle the status bar, capture a screen, drop it into a design tool, write a caption, resize, upload. Per screen. Per device. Per app. Every step a place to slip.
What we built
A one-command screenshot factory. Point it at an app and it captures the real screens (from the simulator, or a browser for web), composes them into branded marketing posters — device frame, a benefit headline, the right background — checks them against Apple’s current rules, and uploads. It reads from two living sources: each app’s marketing points (so captions are grounded, not improvised) and a tracked copy of Apple’s screenshot specs and review guidelines (so it can’t drift out of compliance).
We studied what the best listings do first. The lesson that stuck wasn’t a trend — it was contrast: a top habit tracker uses a light background precisely because its app is dark and colorful, so the screen pops. The rule isn’t “go dark” or “go light”; it’s pick the background that makes the app’s hero shot jump. Several of our apps are dark, so they want light posters — the opposite of what we’d shipped.
The day’s failures (this is the real post)
The factory makes production nearly free. Here’s what that bought us — a parade of things that looked done and weren’t:
- Screenshots that uploaded as blank. The dashboard cheerfully said “3 of 10 screenshots.” They were empty placeholders — the image bytes never actually landed because of one wrong header in the upload. It reported success at every step.
- A caption written in jargon. The agent labeled a frame “Available, sold, NFS” — NFS being a real art-cataloging term (Not For Sale). To a normal human it reads like NFT. A person caught it in a second; the tool never would have.
- The same screen, three times. A four-frame set quietly collapsed to one screenshot with three different captions. Distinct enough in a spreadsheet; obviously lazy to a human eye.
- The App Store’s own trap. To swap screenshots on an app already waiting for review, you pull it from the queue first. Doing that flips it to a state the API flatly refuses to resubmit — so the “automated” path dead-ended at a button only a human can click.
None of these were exotic. Each looked finished. Each needed judgment to catch.
The lesson, again
This is Field Notes #1’s thesis with the volume turned up: when everything looks done, the quality gate is the entire job. The factory didn’t remove the human — it relocated the human. We stopped doing the captures and started doing the only thing that was ever scarce: deciding which output is actually good, and noticing when “3 of 10” means zero.
The two apps we ran through it — Atelier and Muse — are back in review now with better screenshots than we could have made by hand, in a fraction of the time. And every failure above is now written into the tool itself, so the next app doesn’t repeat them. That’s the compounding part: the factory gets a little harder to fool each time it fools us.
We open-sourced it
We pulled the generic core out into a small open tool — appshot (MIT), part of our open skills-public collection. Same flow — capture → compose → comply → upload — but config-driven, with no hardcoded apps, repos, or accounts, and every gotcha above written into the docs. If you ship iOS apps, take it and run. It works by hand or as a Claude Code skill.
More soon — ASO metadata optimization is next in the same collection. We’ll keep these honest.