# Screenshot Plan

Apple's current App Store Connect help says screenshots must be uploaded as `.jpeg`, `.jpg`, or `.png`, with one to ten screenshots per supported device size. As of May 17, 2026, accepted 6.9-inch iPhone portrait sizes include `1260x2736`, `1290x2796`, and `1320x2868`; iPad apps require 13-inch screenshots such as `2064x2752` or `2048x2732`.

Source: https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/

## Generated Files

The local generator creates these App Store-ready PNGs from real iOS simulator screenshots captured with DEBUG-only fictional demo data:

- `screenshots/iphone-6-9-01-dashboard.png` - 1290 x 2796
- `screenshots/iphone-6-9-02-storage.png` - 1290 x 2796
- `screenshots/iphone-6-9-03-security.png` - 1290 x 2796
- `screenshots/ipad-13-01-dashboard.png` - 2064 x 2752
- `screenshots/ipad-13-02-storage.png` - 2064 x 2752
- `screenshots/ipad-13-03-security.png` - 2064 x 2752

## Sanitization Rules

- Use only fictional server names: `Demo NAS`, `atlas`, `media-lab`, `backup`.
- Use only reserved documentation IP ranges when an IP is needed: `192.0.2.0/24`, `198.51.100.0/24`, or `203.0.113.0/24`.
- Do not show API keys, real hostnames, serial numbers, MAC addresses, public IP addresses, private infrastructure names, customer names, or real alert text.
- Do not include screenshots from a production TrueNAS server.

## Current Source Screenshots

The committed source screenshots in `screenshots/app-ui/` are real captures from the native app running in the iOS simulator with the `--screenshot-demo` launch argument. That mode populates fake health, storage, alert, task, app, and settings data and avoids production server details.

## GPT Image 2 Polishing Prompt

Use this only after generating sanitized simulator screenshots. Keep the final review pass strict: no production hosts, public IPs, API keys, serials, MAC addresses, customer names, or operational alert text.

> Beautify this App Store screenshot for a native iOS TrueNAS monitoring app. Keep the app UI readable, keep all existing fictional sample data, and do not add real-looking server hostnames, public IP addresses, API keys, passwords, disk serial numbers, MAC addresses, company names, or production infrastructure details. Preserve the exact final canvas size and leave the screenshot suitable for App Store Connect upload.

## Render Command

From the repository root:

```bash
node site/app-store/scripts/render-screenshots.mjs
```
