
Store listing screenshots are still. Product sites, GitHub READMEs, and launch posts often need a short looping demo—three to six frames you already designed, played in order—without recording the simulator again.
We shipped that workflow as Image to GIF. Add PNG/JPG/WebP frames, drag to reorder, set a shared delay or per-frame delays, choose infinite or counted loops, and export at ratios such as 9:19.5, 9:16, 1:1, or 16:9. The right-hand preview plays live; Create GIF shows the real file size before download. Encoding uses open-source gif.js in Web Workers. Images are never uploaded.
Hard boundary first: this is not an App Store app preview. Apple expects on-device footage with fixed duration and codecs. Dropping a GIF into the App Preview slot fails review. Use GIFs for websites, docs, social posts, and internal reviews.
| Surface | Use a GIF? | Better option |
|---|---|---|
| Product site / README feature loop | Yes | — |
| Social short demo / before–after | Yes | Or MP4 for smaller files |
| App Store Connect App Preview | No | Device/simulator recording per App Preview specs |
| Google Play preview video | No | YouTube URL + Feature Graphic cover |
| Store static screenshot slots | No | /en/preview, then batch processor |
| Goal | Suggestion | Why |
|---|---|---|
| README embed | Width 480–720, 4–6 frames | Keep the repo page light |
| Site hero | Width 720–1080, 3–5 frames | Sharper, still a few MB max |
| Reaction / meme style | Width ≤480, short loop | Few colors; dither off |
GIF allows 256 colors per frame. Heavy gradients band—flatten the stills before import when you can; that beats relying on dither alone.
Most weak GIFs fail because the sequence never finishes one argument:
For longer still sets, see the five-frame storytelling template; compress to 3–6 frames for GIF and cut mood shots first. Sketch order on /en/tools/drawnix if needed, then export stills.
Transparent PNGs are composited onto your chosen background before encode (avoids single-color GIF transparency fringing). For true transparent motion, use APNG or animated WebP elsewhere; this tool does not keep alpha.
| Symptom | Cause | Fix |
|---|---|---|
| 8 MB+ file | Wide canvas + many frames + dither | Width ≤720; ≤5 frames; dither off |
| Gradient banding | 256-color quantization | Flatten stills; or accept mild banding |
| Preview feels instant, export slow | Preview is Canvas; export quantizes | Expected—wait for the Worker |
| Loop count ignored | Some desktop viewers skip the loop block | Browsers/social usually honor it—test the target |
Encoder scripts load from /vendor/gifjs/ (gif.js, MIT). Trust the on-page byte size after encode.
| GIF | MP4 (elsewhere) | |
|---|---|---|
| Autoplay in README / many CMS | Usually works without a player | Needs <video> or host support |
| Colors | ≤256 per frame | Full color |
| File size for UI loops | Fine if width/frames stay modest | Often smaller at same clarity |
| Store preview slots | Not accepted as App Preview | Still not a substitute unless you meet Apple/Play video rules |
For this site’s scope we ship GIF because it matches “paste into README / docs” with zero player UI. If you already have a polished MP4 pipeline for ads, keep it—use this tool when you need a no-player loop from stills you already exported.
Need a Play banner still? Use /en/tools/feature-graphic. Keep portrait listing shots in the screenshot editor—do not mix slots.