remotion
Generate walkthrough videos from Stitch projects using Remotion with smooth transitions, zooming, and text overlays
What this skill does
# Stitch to Remotion Walkthrough Videos
You are a video production specialist focused on creating engaging walkthrough videos from app designs. You combine Stitch's screen retrieval capabilities with Remotion's programmatic video generation to produce smooth, professional presentations.
## Overview
This skill enables you to create walkthrough videos that showcase app screens with professional transitions, zoom effects, and contextual text overlays. The workflow retrieves screens from Stitch projects and orchestrates them into a Remotion video composition.
## Prerequisites
**Required:**
- Access to the Stitch MCP Server
- Access to the Remotion MCP Server (or Remotion CLI)
- Node.js and npm installed
- A Stitch project with designed screens
**Recommended:**
- Familiarity with Remotion's video capabilities
- Understanding of React components (Remotion uses React)
## Retrieval and Networking
### Step 1: Discover Available MCP Servers
Run `list_tools` to identify available MCP servers and their prefixes:
- **Stitch MCP**: Look for `stitch:` or `mcp_stitch:` prefix
- **Remotion MCP**: Look for `remotion:` or `mcp_remotion:` prefix
### Step 2: Retrieve Stitch Project Information
1. **Project lookup** (if Project ID is not provided):
- Call `[stitch_prefix]:list_projects` with `filter: "view=owned"`
- Identify target project by title (e.g., "Calculator App")
- Extract Project ID from `name` field (e.g., `projects/13534454087919359824`)
2. **Screen retrieval**:
- Call `[stitch_prefix]:list_screens` with the project ID (numeric only)
- Review screen titles to identify all screens for the walkthrough
- Extract Screen IDs from each screen's `name` field
3. **Screen metadata fetch**:
For each screen:
- Call `[stitch_prefix]:get_screen` with `projectId` and `screenId`
- Retrieve:
- `screenshot.downloadUrl` — Visual asset for the video
- `htmlCode.downloadUrl` — Optional: for extracting text/content
- `width`, `height` — Screen dimensions for proper scaling
- Screen title and description for text overlays
4. **Asset download**:
- Use `web_fetch` or `Bash` with `curl` to download screenshots
- Save to a staging directory: `assets/screens/{screen-name}.png`
- Organize assets in order of the intended walkthrough flow
### Step 3: Set Up Remotion Project
1. **Check for existing Remotion project**:
- Look for `remotion.config.ts` or `package.json` with Remotion dependencies
- If exists, use the existing project structure
2. **Create new Remotion project** (if needed):
```bash
npm create video@latest -- --blank
```
- Choose TypeScript template
- Set up in a dedicated `video/` directory
3. **Install dependencies**:
```bash
cd video
npm install @remotion/transitions @remotion/animated-emoji
```
## Video Composition Strategy
### Architecture
Create a modular Remotion composition with these components:
1. **`ScreenSlide.tsx`** — Individual screen display component
- Props: `imageSrc`, `title`, `description`, `width`, `height`
- Features: Zoom-in animation, fade transitions
- Duration: Configurable (default 3-5 seconds per screen)
2. **`WalkthroughComposition.tsx`** — Main video composition
- Sequences multiple `ScreenSlide` components
- Handles transitions between screens
- Adds text overlays and annotations
3. **`config.ts`** — Video configuration
- Frame rate (default: 30 fps)
- Video dimensions (match Stitch screen dimensions or scale appropriately)
- Total duration calculation
### Transition Effects
Use Remotion's `@remotion/transitions` for professional effects:
- **Fade**: Smooth cross-fade between screens
```tsx
import {fade} from '@remotion/transitions/fade';
```
- **Slide**: Directional slide transitions
```tsx
import {slide} from '@remotion/transitions/slide';
```
- **Zoom**: Zoom in/out effects for emphasis
- Use `spring()` animation for smooth zoom
- Apply to important UI elements
### Text Overlays
Add contextual information using Remotion's text rendering:
1. **Screen titles**: Display at the top or bottom of each frame
2. **Feature callouts**: Highlight specific UI elements with animated pointers
3. **Descriptions**: Fade in descriptive text for each screen
4. **Progress indicator**: Show current screen position in walkthrough
## Execution Steps
### Step 1: Gather Screen Assets
1. Identify target Stitch project
2. List all screens in the project
3. Download screenshots for each screen
4. Organize in order of walkthrough flow
5. Create a manifest file (`screens.json`):
```json
{
"projectName": "Calculator App",
"screens": [
{
"id": "1",
"title": "Home Screen",
"description": "Main calculator interface with number pad",
"imagePath": "assets/screens/home.png",
"width": 1200,
"height": 800,
"duration": 4
},
{
"id": "2",
"title": "History View",
"description": "View of previous calculations",
"imagePath": "assets/screens/history.png",
"width": 1200,
"height": 800,
"duration": 3
}
]
}
```
### Step 2: Generate Remotion Components
Create the video components following Remotion best practices:
1. **Create `ScreenSlide.tsx`**:
- Use `useCurrentFrame()` and `spring()` for animations
- Implement zoom and fade effects
- Add text overlays with proper timing
2. **Create `WalkthroughComposition.tsx`**:
- Import screen manifest
- Sequence screens with `<Sequence>` components
- Apply transitions between screens
- Calculate proper timing and offsets
3. **Update `remotion.config.ts`**:
- Set composition ID
- Configure video dimensions
- Set frame rate and duration
**Reference Resources:**
- Use `resources/screen-slide-template.tsx` as starting point
- Follow `resources/composition-checklist.md` for completeness
- Review examples in `examples/walkthrough/` directory
### Step 3: Preview and Refine
1. **Start Remotion Studio**:
```bash
npm run dev
```
- Opens browser-based preview
- Allows real-time editing and refinement
2. **Adjust timing**:
- Ensure each screen has appropriate display duration
- Verify transitions are smooth
- Check text overlay timing
3. **Fine-tune animations**:
- Adjust spring configurations for zoom effects
- Modify easing functions for transitions
- Ensure text is readable at all times
### Step 4: Render Video
1. **Render using Remotion CLI**:
```bash
npx remotion render WalkthroughComposition output.mp4
```
2. **Alternative: Use Remotion MCP** (if available):
- Call `[remotion_prefix]:render` with composition details
- Specify output format (MP4, WebM, etc.)
3. **Optimization options**:
- Set quality level (`--quality`)
- Configure codec (`--codec h264` or `h265`)
- Enable parallel rendering (`--concurrency`)
## Advanced Features
### Interactive Hotspots
Highlight clickable elements or important features:
```tsx
import {interpolate, useCurrentFrame} from 'remotion';
const Hotspot = ({x, y, label}) => {
const frame = useCurrentFrame();
const scale = spring({
frame,
fps: 30,
config: {damping: 10, stiffness: 100}
});
return (
<div style={{
position: 'absolute',
left: x,
top: y,
transform: `scale(${scale})`
}}>
<div className="pulse-ring" />
<span>{label}</span>
</div>
);
};
```
### Voiceover Integration
Add narration to the walkthrough:
1. Generate voiceover script from screen descriptions
2. Use text-to-speech or record audio
3. Import audio into Remotion with `<Audio>` component
4. Sync screen timing with voiceover pacing
### Dynamic Text Extraction
Extract text from Stitch HTML code for automatic annotations:
1. Download `htmlCode.downloadUrl` for each screen
2. Parse HTML to extract key text elements (headings, buttons, labels)
3. Generate automatic callouts for important UI elements
4. Add to compositioRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.