Docs

Shipshot turns raw phone captures into store-ready screenshot sets. This covers what it infers, what it cannot, and the failure modes worth knowing before you upload.

Getting started

  1. 01Open the studio and drop in screenshots straight off your phone. No account needed.
  2. 02Dimensions are read locally to identify the device, which fixes the frame, corner radius, Dynamic Island geometry and status-bar height.
  3. 03Copy is generated per screen. Edit any of it — the preview updates as you type.
  4. 04Export. You are asked to sign in only at this point.

Store size reference

Every canvas Shipshot renders, and the slot that accepts it.

CanvasSlotNotes
1284×2778iPhone 6.5"6.5" Display slot
1242×2688iPhone 6.5" altalso accepted by 6.5"
1320×2868iPhone 6.9"6.9" slot only
1290×2796iPhone 6.7"6.7" slot only
2064×2752iPad 13"iPad 12.9"/13" slot
2048×2732iPad 13" altalso accepted by iPad 13"
1440×3120Play phonePlay Store phone

Apple accepts a maximum of 10 screenshots per display size per localisation, and shows the first three on the install sheet. Google Play accepts 8.

Slots vs. devices

This is the single most common cause of a rejected upload. App Store Connect validates a file against the slot you drop it into, not the device you captured on. A perfectly valid 1320 × 2868 file from an iPhone 16 Pro Max is rejected by the 6.5" slot, which wants 1284 × 2778 or 1242 × 2688.

All four iPhone canvases are within 0.5% of the same aspect ratio, so one capture set legitimately feeds all of them. Shipshot renders every one and names each output folder after its slot, then reads each PNG's header back to confirm its dimensions before you download.

Copy generation

Headlines are written by Claude Fable 5 (claude-fable-5) from a description of what is on each screen. The model is instructed to:

  • Never invent a feature that is not visible in the capture.
  • Keep headlines under 38 characters and state a benefit, not a screen name.
  • Name one concrete, visible detail in the subline.
  • Wrap exactly one phrase in *asterisks*, which renders in your accent colour.

Without an ANTHROPIC_API_KEY, the API falls back to deterministic copy so the demo never fails on a fresh clone.

Known traps

Capture chrome

Screenshots taken while recording carry a coloured pill, a live-activity timer, a real wall clock, a drained battery, and sometimes a green active-call indicator. An opaque black band covers that region and a clean 9:41 with full signal and battery is drawn on top. A translucent band blends with the pill instead of hiding it.

Replaced captures, stale copy

If you replace a capture but keep its filename, copy attached by filename silently describes the old screen. Nothing detects it — the render still succeeds. Always re-read the grid after changing captures.

Mixed platforms

iPhone is ~2.17:1 and iPad is ~1.33:1. Compositing one into the other distorts the UI, so iPad needs its own layout and its own project rather than another canvas on an iPhone set.

API

Copy generation is exposed directly. Team plans get export endpoints for CI.

POST /api/generate-copy
{
  "appName": "Stock Picks",
  "screen": "Order filled confirmation, BUY 1 SPY @ $747.03",
  "category": "fintech"
}

→ { "headline": "Orders fill *instantly*",
    "sub": "Confirmed at the ask, at the price you were shown",
    "source": "claude-fable-5" }

Pass screens: string[] instead of screen to generate a whole set in one call — cheaper, and the copy varies more across the set.

FAQ

Do my screenshots get uploaded?

Not in the studio. Captures are read locally with an object URL. Files are only sent when you export.

Can I use my own device frame?

Five bezel finishes ship today. Custom frames are on the Team roadmap.

Does it do iPad?

Yes, as a separate project type — iPad needs a different layout because its aspect ratio is nowhere near a phone's.

What about App Store video previews?

Not yet. Screenshots first.