Generate production-ready App Store screenshots for iOS apps using AI agents, Next.js, and html-to-image
triggers
["build app store screenshots","generate marketing screenshots for my iOS app","create exportable screenshot assets for the app store","make app store screenshots with AI","generate promotional screenshots for my iPhone app","create app store marketing images","build screenshot generator for iOS app","automate app store screenshot creation"]
A skill for AI coding agents (Claude Code, Cursor, Windsurf, Codex, etc.) that generates production-ready App Store screenshots for iOS apps. It scaffolds a Next.js project, designs advertisement-style slides, and exports PNGs at all required Apple resolutions.
What This Skill Does
Asks about your app's brand, features, and style preferences before building anything
Scaffolds a minimal Next.js + TypeScript + Tailwind project
Designs each screenshot as an advertisement (not a UI showcase)
Writes compelling copy using proven App Store copywriting patterns
Renders screenshots with a built-in iPhone mockup frame
Exports PNGs at all 4 Apple-required sizes (6.9", 6.5", 6.3", 6.1")
Supports multi-locale screenshot sets, RTL-aware layouts, and reusable theme presets
Install
Using npx skills (recommended)
# Install for current project
npx skills add ParthJadhav/app-store-screenshots
# Install globally (available across all projects)
npx skills add ParthJadhav/app-store-screenshots -g
npx skills add ParthJadhav/app-store-screenshots -a claude-code
> Build App Store screenshots for my habit tracker.
The app helps people stay consistent with simple daily routines.
I want 6 slides, clean/minimal style, warm neutrals, and a calm premium feel.
The agent will ask clarifying questions about brand colors, fonts, features, style direction, number of slides, and locales before generating anything.
Note: Use a 6.1" simulator to capture your initial app screenshots — this avoids resolution adjustments later.
Design Principles the Agent Follows
Screenshots are ads, not docs — each slide sells one idea
One-second rule — headline must be readable at App Store thumbnail size
Vary layouts — no two adjacent slides share the same phone placement (phone-left / phone-right / phone-center)
Style is user-driven — no hardcoded colors; everything flows from theme tokens
First slide = strongest benefit — not the most complex feature
Quality Checklist
Before exporting, verify each slide:
Headline communicates exactly one idea in ~1 second
First slide leads with the strongest user benefit (not a feature)
Adjacent slides use different phone placement layouts
Decorative elements support the message, not obscure the UI
Text and framing look correct after scaling to smallest export size (6.1")
RTL locales have dir="rtl" set and layouts feel native (not mechanically mirrored)
Example Prompts
# Habit tracker
Build App Store screenshots for my habit tracker.
The app helps people stay consistent with simple daily routines.
I want 6 slides, clean/minimal style, warm neutrals, and a calm premium feel.
# Finance app
Generate App Store screenshots for my personal finance app.
Main strengths: fast expense capture, clear monthly trends, shared budgets.
Sharp modern style, high contrast, 7 slides.
# Multi-locale + themes
Build App Store screenshots for my language learning app.
I need English, German, and Arabic screenshot sets.
Use two themes: clean-light and dark-bold.
Make Arabic slides feel RTL-native, not just translated.
Troubleshooting
html-to-image exports blank or white images
Ensure all images are served from /public (same origin). Cross-origin images block canvas export.
Add crossOrigin="anonymous" to <img> tags if loading from a CDN.
Check the browser console for CORS errors.
Mockup frame not aligning with screenshot
The included mockup.png has pre-measured transparent screen area. Use position: absolute with the app screenshot behind the frame, not inside it.
Use top: 28px, left: 24px as the starting offset for a 660px-wide mockup.
Export scaling looks blurry
Always design at 1320×2868 (6.9" base) and scale down — never design small and scale up.
Pass explicit width and height to toPng() with the correct scale transform.
Font not loading in exports
Load fonts via next/font or a <style> tag inside the canvas div, not just in layout.tsx.
Call document.fonts.ready before triggering toPng().
// Wait for fonts before exportawaitdocument.fonts.ready;
const dataUrl = awaittoPng(ref.current, { width: w, height: h });
Simulator screenshots wrong resolution
Always capture from the 6.1" simulator as the starting point to minimize later adjustments.
Requirements
Node.js 18+
One of: bun, pnpm, yarn, or npm
Claude Code, Cursor, Windsurf, Codex, or any agent that reads skill files