ParthJadhav/app-store-screenshotsPublic

end to end app store screenshot creation using AI

AI summary: An AI agent skill that scaffolds a production-ready Next.js editor to generate promotional app store screenshots.

Stars
7.1K
+18 today
Forks
521
Watchers
22
Open issues
3
Open PRs
6
Contributors
~12
Commits
72
Branches
4

TypeScriptMITCreated Mar 7, 2026Last push 1d ago+172 stars this week+337 this month

Quick answers

What is app-store-screenshots?
An AI agent skill that scaffolds a production-ready Next.js editor to generate promotional app store screenshots.
What does app-store-screenshots do?
This project provides a specialized skill for AI coding agents that automatically scaffolds a complete, web-based editor for designing promotional mobile application screenshots. It allows users to place raw app captures into high-fidelity iOS and Android device frames on a unified, connected canvas. Designers can create continuous panoramic layouts by dragging elements across adjacent screens, while the tool handles the precise cropping required for various storefronts. It ensures all project state is saved persistently to local JSON files, enabling seamless version control and rapid generation of exact PNG export bundles for Apple and Google platforms.
Who is app-store-screenshots for?
Independent app developers, mobile marketing teams, and UI/UX designers needing to quickly produce formatted promotional imagery for app stores.
How do I get started with app-store-screenshots?
npm install
How popular is app-store-screenshots on GitHub?
ParthJadhav/app-store-screenshots has 7,138 stars and 521 forks on GitHub, and gained 172 stars in the last 7 days.
What license does app-store-screenshots use?
ParthJadhav/app-store-screenshots is released under the MIT license.

Star history

since Jul 28, 2026
02K4K6KJul 2026Aug 2026Sep 2026Oct 2026
7.1K stars as of Oct 4, 2026. Measured daily since Jul 28, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 3 commits2026-03-08: 1 commit2026-03-09: 0 commits2026-03-10: 2 commits2026-03-11: 0 commits2026-03-12: 5 commits2026-03-13: 2 commits2026-03-14: 2 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 1 commit2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 1 commit2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 1 commit2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 5 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 1 commit2026-05-31: 3 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 1 commit2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 1 commit2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 3 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 1 commit2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 1 commit2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 1 commit2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 1 commit2026-09-27: 25 commits2026-09-28: 0 commits2026-09-29: 1 commit2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
62 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Actively maintained

    Pushed within 48 hours

  • Permissive license

    MIT

What app-store-screenshots does

This project provides a specialized skill for AI coding agents that automatically scaffolds a complete, web-based editor for designing promotional mobile application screenshots. It allows users to place raw app captures into high-fidelity iOS and Android device frames on a unified, connected canvas. Designers can create continuous panoramic layouts by dragging elements across adjacent screens, while the tool handles the precise cropping required for various storefronts. It ensures all project state is saved persistently to local JSON files, enabling seamless version control and rapid generation of exact PNG export bundles for Apple and Google platforms.

Independent app developers, mobile marketing teams, and UI/UX designers needing to quickly produce formatted promotional imagery for app stores.

  • Connected design canvas: Allows users to view and edit multiple screenshots side-by-side, creating continuous panoramic promotional designs.
  • Automatic device framing: Wraps uploaded raw app captures seamlessly into accurate iOS, iPad, and Android device bezels.
  • Persistent project state: Saves all edits and layout metadata directly to a local JSON file, ensuring work is git-trackable and resumable.
  • Platform-specific exports: Generates precise PNG bundles matching the strict resolution requirements for Apple and Google storefronts.
  • Legacy isolated mode: Provides backwards compatibility for older projects by ensuring visual elements do not bleed into neighboring screens.

Where teams use it

Store listing optimization

Independent app developers rapidly create professional marketing screenshots without needing to learn advanced design software like Photoshop.

Multi-platform launches

Marketing teams easily generate matching screenshot sets for both iOS and Android simultaneously using the unified platform switcher.

Rapid localization

Growth managers quickly duplicate layout themes and update text captions to create localized screenshot sets for international markets.

Iterative A/B testing

Designers instantly swap out backgrounds and captions to generate fresh visual variations for store conversion rate experiments.

Getting started: npm install

README

main branch

App Store & Google Play Screenshots Generator

A skill for AI coding agents that scaffolds a production-ready Next.js editor for App Store and Google Play marketing screenshots. It gives you a connected canvas, real device frames, inspector controls, persistent project state, and one-click export bundles at store-ready sizes.

Current connected-canvas editor showing a Bloom screenshot deck

Example screenshots generated with this skill were accepted for Bloom Coffee Shelf Recipe on the App Store.

What It Does

  • Builds a full screenshot editor instead of a static one-off page
  • Turns raw app captures into ad-style slides with big readable copy
  • Lets phones, captions, and decorative elements span adjacent screenshots on one connected canvas
  • Keeps older projects safe with isolated-screen export mode until you opt into connected crops
  • Saves every deck to app-store-screenshots.json, so the project is git-trackable and resumable
  • Uploads picked screenshots into public/screenshots/uploaded/<hash>.png
  • Supports iPhone, iPad, Apple TV, Apple Watch, CarPlay, Mac, Android phone, Android tablet, and Play Store feature graphic decks
  • Exports exact PNG bundles for all required App Store, Mac App Store, and Google Play sizes
  • Supports locales, RTL-aware copy/layout guidance, reusable themes, and in-place project migration
  • Ships 18 named visual styles with deep specs and a headline copy library

Current Editor UI

  • Connected canvas - view the whole screenshot strip at once, drag elements across screen boundaries, then export each screen as a precise crop.
  • Isolated mode - preserve legacy decks where offscreen elements should not leak into neighboring exports.
  • Screen sidebar - add, select, and drag-to-reorder screens with live thumbnails.
  • Inspector - edit layout, labels, headlines, screenshots, element stacking, and transforms from the right panel. A Copy ideas menu next to the headline drops in a proven formula to rewrite.
  • Theme picker - switch palette presets from the toolbar, including one preset per named style.
  • Platform switcher - iOS, Mac, and Android tabs keep every deck side by side while sharing the same editor workflow.
  • Device selector - iPhone, iPad, Apple TV, Apple Watch, and CarPlay under iOS; Android phone, Android tablets, and the feature graphic under Android. The Mac tab is a single 16:10 Mac deck.
  • Autosave - writes to disk through /api/project, mirrors to localStorage, and detects newer disk revisions before overwriting work from another tab or agent. Failed saves can be retried; unsaved edits trigger a warning before leaving.
  • Export bundle - downloads a zip organized by platform, device, resolution, and locale.

Tip: when capturing source iPhone screenshots, the 6.1-inch simulator is usually the easiest starting point because it reduces manual image adjustment inside the frames.

Install

Using npx skills

npx skills add ParthJadhav/app-store-screenshots

Install globally:

npx skills add ParthJadhav/app-store-screenshots -g

Install for a specific agent:

npx skills add ParthJadhav/app-store-screenshots -a claude-code

This works with Claude Code, Cursor, Windsurf, OpenCode, Codex, and other agents supported by skills.

Manual install

git clone https://github.com/ParthJadhav/app-store-screenshots ~/.claude/skills/app-store-screenshots

Usage

Once installed, ask your coding agent for store screenshots:

Build App Store and Google Play screenshots for my app.

The skill guides the agent to ask for your app context, source screenshots, platforms, locales, visual direction, and slide count before generating the editor project.

Example Prompts

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.
Generate App Store screenshots for my personal finance app.
The main strengths are fast expense capture, clear monthly trends, and shared budgets.
I want a sharp modern style with high contrast and 7 slides.
Build Mac App Store screenshots for my menu-bar utility.
The app lives in the menu bar and finds files on this Mac instantly.
I want 5 slides, a dark Mac window frame, and a calm desktop feel.
Build App Store screenshots for my language learning app.
I need English, German, and Arabic screenshot sets.
Use two reusable themes: clean-light and dark-bold.
Make sure Arabic slides feel RTL-native, not just translated.

Better Prompt Tips

  • Say what the app does in one sentence
  • List the top 3-5 features in priority order
  • Mention the platforms and devices you need
  • Describe the visual style you want
  • Say how many slides you want
  • Mention required locales or RTL languages
  • Provide source screenshot paths, app icon, and style references when available

What Gets Scaffolded

If starting from an empty folder, the skill creates a Next.js project like this:

project/
├── public/
│   ├── mockup.png
│   ├── app-icon.png
│   └── screenshots/
│       ├── apple/
│       │   ├── iphone/{locale}/01.png
│       │   ├── ipad/{locale}/01.png
│       │   ├── tvos/{locale}/01.png
│       │   ├── watchos/{locale}/01.png
│       │   ├── carplay/{locale}/01.png
│       │   └── mac/{locale}/01.png
│       └── android/
│           ├── phone/{locale}/01.png
│           ├── tablet-7/portrait/{locale}/01.png
│           ├── tablet-10/landscape/{locale}/01.png
│           └── feature-graphic/{locale}/01.png
├── app-store-screenshots.json
├── src/app/
│   ├── layout.tsx
│   └── page.tsx
├── src/components/editor/
│   ├── screenshot-editor.tsx
│   ├── toolbar.tsx
│   ├── sidebar.tsx
│   ├── inspector.tsx
│   ├── preview-stage.tsx
│   ├── slide-canvas.tsx
│   ├── screenshot-picker.tsx
│   └── device-frames.tsx
└── src/lib/
    ├── constants.ts
    ├── defaults.ts
    ├── storage.ts
    ├── image-cache.ts
    ├── export-render.ts
    └── types.ts

The template README inside skills/app-store-screenshots/template/README.md documents the editor internals in more detail.

Editor Workflow

  1. Capture real app screenshots from a simulator, emulator, or device.
  2. Ask your agent to scaffold or migrate the screenshot project.
  3. Run the dev server and open the editor.
  4. Use the sidebar to organize screens and the inspector to edit copy, layouts, screenshots, and elements.
  5. Choose Connected or Isolated mode depending on whether elements should cross screen boundaries.
  6. Click Export bundle to download store-ready PNGs.

Uploaded files are saved under public/screenshots/uploaded/, and the canonical deck state is saved in app-store-screenshots.json. Commit both to make the deck reproducible after a fresh clone.

Export Sizes

Apple App Store

Device Resolution
iPhone 6.9" 1320 x 2868
iPhone 6.5" 1284 x 2778
iPhone 6.3" 1206 x 2622
iPhone 6.1" 1125 x 2436
iPad 13" 2064 x 2752
iPad Pro 12.9" 2048 x 2732
Apple TV 3840 x 2160, 1920 x 1080
Apple Watch Ultra 422 x 514, 410 x 502
Apple Watch Series 10 416 x 496
Apple Watch Series 7 396 x 484
Apple Watch Series 4 368 x 448
Apple Watch Series 3 312 x 390
CarPlay (iPhone slot, landscape) 2868 x 1320, 2778 x 1284, 2622 x 1206, 2436 x 1125

App Store Connect has no CarPlay screenshot slot: CarPlay shots are uploaded into the iPhone slot, so the CarPlay deck exports landscape iPhone sizes with a head-unit frame.

Mac App Store

Device Resolution
Mac (16:10) 2880 x 1800, 2560 x 1600, 1440 x 900, 1280 x 800

Mac has its own Mac tab because App Store Connect lists macOS as a separate platform from the iOS app. Its bundle exports to macos/mac/<WxH>/<locale>/, next to ios/... and android/.... The Mac window frame has a 16:10 content area, so a full-screen 16:10 capture fills it without cropping.

Google Play Store

Device Resolution
Phone portrait 1080 x 1920
7" tablet portrait 1200 x 1920
7" tablet landscape 1920 x 1200
10" tablet portrait 1600 x 2560
10" tablet landscape 2560 x 1600
Feature graphic 1024 x 500

Screenshots are designed at the largest size for each device and scaled down for smaller exports. Every export waits until each screenshot has actually painted (Safari/WebKit decodes them asynchronously) and warns instead of silently writing a blank device. Android, iPad, Apple TV, Apple Watch, CarPlay and Mac frames are CSS-rendered, while iPhone uses the included mockup.png bezel.

Project State

  • app-store-screenshots.json is the source of truth for app name, active platform, active device, locales, theme, connected-canvas mode, slides, screenshot paths, and transforms.
  • Runtime uploads are written to public/screenshots/uploaded/<hash>.png.
  • The editor reads localStorage first for fast paint, then reconciles with the project file.
  • Older project files are migrated to schema v2 on load while keeping legacy decks isolated unless connected mode was already enabled.
  • Custom themes live in src/lib/constants.ts; unknown theme ids fall back to clean-light.

Styles and Copy

The skill ships 18 named visual styles. Each one has a deep spec in skills/app-store-screenshots/style-prompts/ covering palette, typography, headline emphasis, layout rhythm, decoration density, cross-screen moments, and copy voice. Browse rendered samples and copy-paste prompts in the style gallery.

Style Good for
Hand-Drawn Editorial Tasks Productivity, tasks, notes with designer taste
Retro Rubberhose Mascot Cozy habit and wellness apps with a mascot
Moody Curated Dating Members-only dating, dinner clubs, premium lifestyle
Paper Sticker Skeuomorphic Student organizers, notes, hobby apps
Dreamy Pastel Couples Couples, long-distance, pet companions
Glossy 3D K-Beauty Creator Creator economy, fan communities, beauty
Liquid Glass Aurora Premium iOS-native utilities, AI assistants
Swiss Grid Bold Finance, dev tools, analytics, B2B
Neon Athletic Night Fitness, running, strength, recovery
Magazine Cover Editorial Food, recipes, reading, travel, coffee
Candy Pop Social Social, friends, events, gen-Z consumer
Soft Clay Wellness Meditation, sleep, journaling, health
Midnight Glow Pro AI, dev tools, pro productivity, power-user finance
Risograph Zine Music, events, podcasts, indie creative apps
Bento Keynote Grid Feature-dense productivity, health, finance, utilities
Toybox Primary Kids learning, families, beginners, casual games
Quiet Japandi Notes, calendars, reading, tea, minimalist utilities
Vintage Travel Poster Travel, maps, outdoors, weather, road trips

Name a style in your prompt ("use Swiss Grid Bold") and the agent applies the whole spec. Every named style also has a matching palette preset in the editor's toolbar theme picker.

For headlines, skills/app-store-screenshots/copy-ideas.md has formulas per slide role, ready lines for 13 app categories, eyebrow labels, a weak-to-better table, deck arcs, and localization notes. The same formulas sit in the inspector's Copy ideas menu next to the headline field.

Design Standards

  • Screenshots are ads, not documentation
  • Each slide should sell one clear user outcome
  • Headlines should pass the one-second thumbnail test
  • Adjacent slides should vary layout and device placement
  • Cross-screen elements should never split required text or critical UI
  • Exported crops must still work as standalone screenshots

Tech Stack

Dependency Purpose
Next.js Dev server and app shell
React Editor UI
TypeScript Project and slide state safety
Tailwind CSS Styling
shadcn/ui + Radix Controls, dialogs, selects, tooltips
html-to-image Exact PNG rendering
JSZip Bundle downloads
dnd-kit Screen reordering
react-rnd Draggable and resizable canvas elements

Requirements

  • Node.js 20.9+
  • One of bun, pnpm, yarn, or npm

Contributing

Contributions are welcome, especially around export reliability, screenshot design guidance, migrations, and cross-agent compatibility. Start with CONTRIBUTING.md.

License

MIT

Author

Created by Parth Jadhav.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Code frequency

additions and deletions
+8.1K-8.1KWeek of 2026-03-01: +802 linesWeek of 2026-03-01: -350 linesWeek of 2026-03-08: +703 linesWeek of 2026-03-08: -21 linesWeek of 2026-03-15: +0 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +0 linesWeek of 2026-03-22: -0 linesWeek of 2026-03-29: +64 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +630 linesWeek of 2026-04-05: -288 linesWeek of 2026-04-12: +30 linesWeek of 2026-04-12: -12 linesWeek of 2026-04-19: +0 linesWeek of 2026-04-19: -0 linesWeek of 2026-04-26: +0 linesWeek of 2026-04-26: -0 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +8,132 linesWeek of 2026-05-17: -1,786 linesWeek of 2026-05-24: +1 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +2,567 linesWeek of 2026-05-31: -571 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +0 linesWeek of 2026-08-16: -0 linesWeek of 2026-08-23: +0 linesWeek of 2026-08-23: -0 linesWeek of 2026-08-30: +4 linesWeek of 2026-08-30: -0 linesWeek of 2026-09-06: +0 linesWeek of 2026-09-06: -0 linesWeek of 2026-09-13: +0 linesWeek of 2026-09-13: -0 linesWeek of 2026-09-20: +0 linesWeek of 2026-09-20: -0 linesMar 1, 2026Sep 20, 2026
+12.9K lines added, -3K removed over the last year.

Commits per week

last 52 weeks
260Week of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 3 commitsWeek of 2026-03-08: 12 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 1 commitsWeek of 2026-04-05: 1 commitsWeek of 2026-04-12: 1 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 5 commitsWeek of 2026-05-24: 1 commitsWeek of 2026-05-31: 3 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 1 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 1 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 4 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 1 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 1 commitsWeek of 2026-09-20: 1 commitsWeek of 2026-09-27: 26 commitsOct 4, 2025Sep 27, 2026
62 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 18 commitsSun 1:00 — 6 commitsSun 2:00 — 1 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 1 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 1 commitsSun 14:00 — 2 commitsSun 15:00 — 1 commitsSun 16:00 — 0 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 0 commitsSun 20:00 — 1 commitsSun 21:00 — 2 commitsSun 22:00 — 1 commitsSun 23:00 — 1 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 1 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 1 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 0 commitsMon 15:00 — 0 commitsMon 16:00 — 0 commitsMon 17:00 — 0 commitsMon 18:00 — 0 commitsMon 19:00 — 0 commitsMon 20:00 — 0 commitsMon 21:00 — 0 commitsMon 22:00 — 0 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 1 commitsTue 10:00 — 0 commitsTue 11:00 — 1 commitsTue 12:00 — 1 commitsTue 13:00 — 0 commitsTue 14:00 — 3 commitsTue 15:00 — 0 commitsTue 16:00 — 0 commitsTue 17:00 — 0 commitsTue 18:00 — 0 commitsTue 19:00 — 1 commitsTue 20:00 — 0 commitsTue 21:00 — 0 commitsTue 22:00 — 0 commitsTue 23:00 — 1 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 0 commitsWed 15:00 — 0 commitsWed 16:00 — 0 commitsWed 17:00 — 0 commitsWed 18:00 — 0 commitsWed 19:00 — 0 commitsWed 20:00 — 0 commitsWed 21:00 — 0 commitsWed 22:00 — 0 commitsWed 23:00 — 0 commitsThu 0:00 — 0 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 1 commitsThu 10:00 — 0 commitsThu 11:00 — 0 commitsThu 12:00 — 1 commitsThu 13:00 — 0 commitsThu 14:00 — 0 commitsThu 15:00 — 0 commitsThu 16:00 — 0 commitsThu 17:00 — 0 commitsThu 18:00 — 0 commitsThu 19:00 — 0 commitsThu 20:00 — 1 commitsThu 21:00 — 0 commitsThu 22:00 — 0 commitsThu 23:00 — 2 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 1 commitsFri 13:00 — 0 commitsFri 14:00 — 0 commitsFri 15:00 — 0 commitsFri 16:00 — 0 commitsFri 17:00 — 0 commitsFri 18:00 — 0 commitsFri 19:00 — 4 commitsFri 20:00 — 0 commitsFri 21:00 — 0 commitsFri 22:00 — 0 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 2 commitsSat 12:00 — 0 commitsSat 13:00 — 1 commitsSat 14:00 — 1 commitsSat 15:00 — 1 commitsSat 16:00 — 0 commitsSat 17:00 — 0 commitsSat 18:00 — 0 commitsSat 19:00 — 3 commitsSat 20:00 — 0 commitsSat 21:00 — 0 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits54 (75%)
Community commits18 (25%)

72 commits in total over the last year.

DateListRankStars gained
Mar 11, 2026daily#16+146
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    373.2K stars · Python

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python