Sandbox
@trunghaiy/appshot

App Store and demo video skills for Remotion

Appshot gives agents a set of skills and primitives for making preview videos and screenshots from a real app or website. The skills scan your project, ask for creative input when needed, and generate custom `.tsx` scenes that render through Remotion.

42 stars0 forksTypeScriptUpdated 3mo ago
Who it's for

Builders who want Claude Code, Cursor, Windsurf, Codex, or another agent to produce app store previews and demo videos from their codebase.

What it delivers

You can turn an app or website into store screenshots and preview videos without using a separate video editor.

What it does

Mobile preview video skills

`appshot-videos` scans an app and generates bespoke scenes for App Store and Google Play preview videos.

Screenshot skills

`appshot-images` designs store listing screenshots with device frames, captions, and branded backgrounds.

Web demo video skills

`appshot-web-videos` builds 1920×1080 product demo videos with browser mockups for websites and SaaS products.

Core primitives library

`appshot-core` provides the shared config schema, component inventory, and device presets used by the other skills.

Remotion starter template

The `template/` project is a standalone scaffold with `src`, `public`, `remotion.config.ts`, and `tailwind.config.ts`.

Example project

`examples/bookstreak/` shows a real generated setup for an App Store preview workflow.

How to get it

  1. 1Install the skills into your app project (recommended)
    npx skills add trunghaiy/appshot
  2. 2Install specific skills only
    npx skills add trunghaiy/appshot --skill appshot-videos appshot-images
  3. 3Clone and copy
    git clone https://github.com/trunghaiy/appshot.git
    cp -r appshot/skills/* your-project/.agents/skills/
  4. 4Git submodule
    git submodule add https://github.com/trunghaiy/appshot.git .agents/appshot

README

Appshot

Generate polished App Store preview videos, Google Play preview videos, and website demo videos — from your codebase, not a video editor.

Appshot is a primitives library + AI skill that acts as a creative director: it scans your project, understands your app, and generates custom scene files tailored to your product. No video editing experience required. For mobile apps, it generates store-compliant preview videos. For websites and SaaS products, it generates 1920×1080 product demo videos with browser mockups.

Works with Claude Code, Cursor, Windsurf, Codex, and any AI agent that supports the Agent Skills spec.

Supports React Native / Expo, Flutter, Swift (iOS), and Kotlin/Java (Android) for mobile, plus Next.js, SvelteKit, Nuxt, Astro, Remix, and Vite projects for web.

Used in production: BookStreak: Reading Tracker — App Store preview videos and screenshots generated entirely with Appshot.

BookStreak App Store preview video generated with Appshot

Real-World Example: BookStreak

BookStreak is a reading habit tracker on the App Store. Its preview videos and store screenshots were generated entirely with Appshot — no CapCut, no Canva, no video editing.

The Old Way vs The Appshot Way

See examples/bookstreak/ for the generated config and scene files.

How It Works

The AI skill generates custom .tsx scene files for each project — no fixed scene templates, no one-size-fits-all layouts:

  1. Install the skills into your mobile app project
  2. Ask your AI agent — "Generate App Store and Play Store preview videos for this app"
  3. The skill scans your codebase — extracts app name, brand colors, icon, features, and store metadata automatically
  4. You answer a few creative questions — what problem does your app solve? What's the core action? What proof do you have?
  5. The skill generates custom scenes — writes bespoke .tsx components using Appshot primitives, wired into a Remotion composition
  6. Preview and rendernpm run dev to preview in-browser, npm run build to export MP4

Every video is unique to your app. The skill picks the right narrative arc, writes copy, chooses animations, and composes scenes from the primitives library below.

Quick mode

Don't want a conversation? Add --quick and the skill makes all creative decisions from your codebase context alone:

Generate an App Store preview video for this app --quick

Quick mode works for web videos too:

Generate a product demo video for this website --quick

Install

Install the skills into your app project (recommended):

npx skills add trunghaiy/appshot

This installs three skills into your project's .agents/skills/ directory. Your AI agent picks them up automatically on the next session.

Other installation methods

Install specific skills only:

npx skills add trunghaiy/appshot --skill appshot-videos appshot-images

Clone and copy:

git clone https://github.com/trunghaiy/appshot.git
cp -r appshot/skills/* your-project/.agents/skills/

Git submodule:

git submodule add https://github.com/trunghaiy/appshot.git .agents/appshot

Fork and customize — fork this repo and modify the skills, strategies, and templates for your needs.

What You Can Generate

Videos

15-30 second animated preview videos for App Store and Google Play. The skill generates both store versions in one session — same scenes, only the device frame (iPhone vs Pixel) and store badge differ. Each video is unique to your app's story, brand, and features.

Screenshots

Store listing screenshots with device frames, captions, and branded backgrounds. Supports all required App Store and Google Play dimensions.

Web Demo Videos

1920×1080 landscape product demo videos for websites and SaaS products. The skill generates custom scenes with browser mockups (Chrome-style frame), animated cursor interactions, and bespoke UI recreations of your product's actual pages. Perfect for landing page heroes, product tours, and marketing videos.

Skills

SkillWhat it does
appshot-coreFoundation — architecture, config schema, component inventory, device presets
appshot-videosCreative director for mobile preview videos — scans your app, guides narrative, generates custom scenes
appshot-web-videosCreative director for web demo videos — scans your web project, generates browser mockup scenes
appshot-imagesCreative director for screenshots — scans your app, designs layouts, generates custom scenes

appshot-core is loaded automatically by the other skills. You interact with appshot-videos, appshot-web-videos, or appshot-images directly.

Manual Quick Start

If you prefer full control without AI skills, scaffold a standalone Remotion project:

# 1. Scaffold
npx create-appshot my-video
cd my-video

# 2. Edit src/app-config.ts with your app's info

# 3. Preview in browser
npm run dev

# 4. Render to MP4
npm run build                     # Both stores (if configured)
# npm run build:app-store         # App Store only
# npm run build:play-store        # Play Store only

Components

The primitives library that the AI composes into custom scenes. All components accept brand colors via a brand prop:

ComponentPurpose
PhoneFrameRealistic device with bezel, side buttons, notch/Dynamic Island
BrowserFrameChrome-style browser window with address bar and traffic lights
AmbientBackgroundAnimated gradient with floating orbs (light/medium/deep/dark)
CaptionBottom caption with word-by-word entrance animation
FadeInDirectional fade-in (up/down/left/right)
SceneWrap12-frame fade transitions between scenes
AnimatedCursorKeyframe-driven mouse cursor for browser interaction demos
ProgressBarAnimated horizontal bar (loading, progress, metrics)
Icon30 SVG stroke icons for UI mockups
HeatMapGitHub-style contribution grid
AppIconIcon with optional glow effect
AppStoreBadgeiOS App Store / Google Play badges
StatCardBefore/after stat with animated counter
FloatingCardGlass/solid/dark card with spring entrance
TypeWriterCharacter-by-character text reveal

Device Presets

PresetScreenNotchStore
iphone-16-pro393x852Dynamic IslandApp Store
iphone-15375x812Dynamic IslandApp Store
ipad-pro-131024x1366NoneApp Store (iPad)
pixel-9412x915Punch holePlay Store

Browser Presets

PresetViewportChromeUse case
chrome-desktop1440x900LightDefault for web demo videos
chrome-dark1440x900DarkDark-themed web apps, developer tools

Config Reference

Everything is driven by src/app-config.ts. The skill generates this for you, but here's the schema if you're customizing manually:

export const appConfig: AppConfig = {
  app: {
    name: "MyApp",
    tagline: "Your tagline",
    icon: "app-icon.png",     // in public/
    platform: "ios",          // "ios" | "android" | "both"
  },
  brand: {
    primary: "#007AFF",
    primaryLight: "#E5F1FF",
    background: "#F5F5F7",
    surface: "#FFFFFF",
    textPrimary: "#1D1D1F",
    textSecondary: "#86868B",
    success: "#34C759",
    danger: "#FF3B30",
  },
  video: {
    fps: 30,
    width: 886,       // App Store required: 886x1920
    height: 1920,
    device: "iphone-15",
  },
};

Web video config

export const appConfig: AppConfig = {
  app: {
    name: "MyProduct",
    tagline: "Your tagline",
    icon: "logo.png",
    platform: "web",
    url: "myproduct.com",
  },
  brand: {
    primary: "#2563EB",
    primaryLight: "#DBEAFE",
    background: "#FFFFFF",
    surface: "#F8FAFC",
    textPrimary: "#0F172A",
    textSecondary: "#64748B",
    success: "#22C55E",
    danger: "#EF4444",
  },
  video: {
    fps: 30,
    width: 1920,
    height: 1080,
    browser: "chrome-desktop",
  },
};

Store Requirements

Videos

PlatformDimensionsDurationFormat
iPhone 6.7"886x192015-30sH.264, MP4/MOV
iPhone 6.1"886x192015-30sH.264, MP4/MOV
iPad 13"1200x160015-30sH.264, MP4/MOV
Google Play886x192015-30sH.264, MP4

Default output is 886×1920. This canvas works for both App Store (iPhone 6.7″ native) and Google Play.

Web Demo Videos

FormatDimensionsDurationCodec
Landing page hero1920x108020-45sH.264, MP4
Full product demo1920x108030-60sH.264, MP4

No store-specific constraints. Output is standard 16:9 landscape video suitable for YouTube, landing pages, social media embeds, and product documentation.

Screenshots — iOS App Store

DeviceDimensions (portrait)Required
iPhone 6.9"1320x2868Yes (mandatory primary)
iPhone 6.7"1290x2796Optional
iPhone 6.5"1242x2688Optional (legacy)
iPad 13"2064x2752Required if app supports iPad

Screenshots — Google Play

DeviceDimensions (portrait)Notes
Phone1080x1920Recommended standard
7" Tablet1200x1920If app targets 7" tablets
10" Tablet1600x2560If app targets 10" tablets

Customization

  • Custom components — Build on top of the existing primitives in src/components/
  • Screenshots — Use staticFile("screenshot.png") inside PhoneFrame
  • Audio — Place .mp3 in public/, set backgroundMusic in config
  • Category strategies — The video skill includes strategies for habit tracking, fitness, finance, and more. Add your own in skills/appshot-videos/strategies/

License

MIT

Files in the repo

Repository payload11 top-level entries
  • examples
  • packages
  • skills
  • template
  • tools
  • .gitignore
  • AGENTS.md
  • CLAUDE.md
  • LICENSE
  • README.md
  • VERSIONS.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More skills

Vincentwei1021/
anything2explainer

Topic in, narrated explainer video out. A Claude Code / Codex skill that turns any topic into a black-canvas motion-graphics explainer video with TTS voiceover, subtitles and a chapter progress bar. Chinese or English; every frame drawn in code with Remotion.

666

Taste-Skill - gives your AI good taste. stops the AI from generating boring, generic slop

86k

Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export.

57k
img2threejs/
img2threejs

Rebuild the object in a reference image as a code-only, procedural, quality-gated, animation-ready Three.js model. Token-efficient image-to-3D.

16k