한국어로 읽기 →

How to use App Store Screenshot Studio

The studio takes you from raw simulator screenshots to a complete, multi-language, App-Store-Connect-ready PNG set in four steps — entirely in your browser, no account, no upload. This is the full walkthrough, including the file-based pipeline that lets an AI assistant do most of it for you.

Step 1 — Set up the project

Open the studio and pick a device type (iPhone or iPad — each slide's type is later auto-detected from its screenshot anyway), a slide count, and a theme. Or skip the blank start:

Everything is stored in your browser (localStorage + IndexedDB). Nothing is sent anywhere.

Step 2 — Design in the editor

Step 3 — Localize

Captions live in a slide × language table. Three ways to fill it:

  1. Type translations directly into the grid.
  2. Export the template (CSV or JSON, one labeled column per language), fill it in a spreadsheet or hand it to a translator, re-import. Empty cells are skipped, so partial files are fine.
  3. Copy the built-in translation prompt, paste it into ChatGPT / Claude / Gemini together with the exported template, and re-import the filled file. No API keys involved.

If your app's UI is localized, bulk-add per-language screenshots named 01-home.en.png, 01-home.ko.png, … — leading digits pick the slide, the suffix picks the locale. Languages without an override fall back to the base screenshot. A preview dropdown in the editor shows any locale on the canvas before you export. Full strategy in the localization guide.

Step 4 — Export

One click renders every slide × language at the exact App Store Connect resolution, alpha-stripped so uploads never bounce, zipped as locale/device/NN.png. The “ZIP for fastlane” button instead produces a ready-to-run fastlane deliver folder — unzip, set your bundle id and API key, run ./upload.sh.

The AI-agent pipeline (zero clicks)

Everything above also works without a human at the keyboard, because the studio's input and output are both files. An AI assistant (Claude Code, Cursor, etc.) drafts an import folder:

launch-screenshots/
├── manifest.json        # device, locales, per-slide layout & text-block count
├── captions.csv         # slide × language caption table
├── 01-home.en.png       # screenshots: {slide}[-desc].{locale}.{ext}
├── 01-home.ko.png
└── 02-add.en.png

A human can drop that folder into step 1's “Import project”. Or skip the browser entirely with the headless pipeline from the repository:

node scripts/headless-export.mjs launch-screenshots/ out/
# → out/en-US/iphone/01.png … every locale, exact sizes
# --fastlane → deliver-ready folder with Appfile/Deliverfile/upload.sh

The agent loop is: edit the manifest or captions → re-run → inspect the PNGs → repeat until it converges. The manifest schema and naming rules are documented in docs/project-import.md. Requirements on the machine running it: Node, @playwright/test + Chromium, and either a local checkout or BASE_URL pointed at the hosted studio.

Open App Store Screenshot Studio — free, open source, fully client-side. Your screenshots never leave your machine. →

FAQ

Where is my project stored?
In your browser: project data in localStorage, images in IndexedDB. Clearing site data deletes it — export your set (or save a template) when you're done.

Does it cost anything or need an account?
No. It's MIT-licensed open source hosted on GitHub Pages; there is no backend at all.

Which sizes does it export?
The App Store Connect upload slots: iPhone 6.9″ (1320×2868), iPhone 6.5″ (1242×2688), iPad 13″ (2064×2752), iPad 11″ (1668×2388) — see the size guide for which you actually need.

Related guides