Loading...
Loading...
Scaffolds Remotion project folder structure, base configuration files, and file organization. Focuses ONLY on directory creation, empty file templates, and Remotion configuration. Use when starting a new video project or when asked to "scaffold Remotion project", "create project structure", "setup Remotion folders".
npx skill4agent add ncklrs/startup-os-skills remotion-scaffold/remotion-animation/remotion-component-gen/remotion-composition/remotion-component-genCreate a new Remotion project scaffold for a 30-second video with 4 scenes.## Project Requirements
**Project Name:** ProductDemo
**Duration:** 30 seconds
**Frame Rate:** 30 fps
**Dimensions:** 1920x1080 (16:9)
**Number of Scenes:** 4 (Intro, Features, Demo, CTA)
**Asset Types:** Images, Audio (music + SFX)# Scaffold Manifest: ProductDemo
## Status
✅ Directory structure created
✅ Configuration files generated
✅ Scene templates created (empty)
⏳ Ready for implementation
## Generated Structure
## File Templates Created
### Main Composition: `index.tsx`
```typescript
import { AbsoluteFill, Sequence } from "remotion";
import { SCENE_TIMING } from "./constants";
import { Scene1Intro } from "./scenes/Scene1Intro";
import { Scene2Features } from "./scenes/Scene2Features";
import { Scene3Demo } from "./scenes/Scene3Demo";
import { Scene4CTA } from "./scenes/Scene4CTA";
import type { ProductDemoProps } from "./types";
export function ProductDemo({}: ProductDemoProps) {
return (
<AbsoluteFill>
{/* TODO: Add composition layout via /remotion-composition */}
<Sequence
from={SCENE_TIMING.intro.start}
durationInFrames={SCENE_TIMING.intro.duration}
>
<Scene1Intro />
</Sequence>
{/* Additional scenes... */}
</AbsoluteFill>
);
}constants.ts// TODO: Define color palette
export const COLORS = {
// Add colors here
} as const;
// TODO: Configure spring animations via /remotion-animation
export const SPRING_CONFIGS = {
// Add spring configs here
} as const;
// Scene timing (30fps, 30 seconds total = 900 frames)
const FPS = 30;
export const SCENE_TIMING = {
intro: { start: 0, duration: 5 * FPS },
features: { start: 5 * FPS, duration: 10 * FPS },
demo: { start: 15 * FPS, duration: 10 * FPS },
cta: { start: 25 * FPS, duration: 5 * FPS },
} as const;types.tsexport interface ProductDemoProps {
// Add custom props here
}
export interface SceneProps {
// Common scene props
}scenes/Scene1Intro.tsximport { AbsoluteFill } from "remotion";
export function Scene1Intro() {
return (
<AbsoluteFill>
{/* TODO: Implement scene via /remotion-component-gen */}
</AbsoluteFill>
);
}/remotion-animation/remotion-composition/remotion-component-gen/remotion-render-config/remotion-asset-coordinator| Setting | Value |
|---|---|
| Composition ID | ProductDemo |
| Duration | 30 seconds (900 frames) |
| Frame Rate | 30 fps |
| Dimensions | 1920x1080 (16:9) |
| Scenes | 4 (Intro, Features, Demo, CTA) |
| Status | Scaffold complete, ready for implementation |
/path/to/project/src/remotion/compositions/ProductDemo//path/to/project/public/index.tsxconstants.tstypes.tspublic/images/public/audio//remotion-animation/remotion-composition/remotion-component-gen
## Directory Structure Patterns
### Pattern 1: Simple Project (1-2 scenes)
### Pattern 2: Multi-Scene Project (3+ scenes)
### Pattern 3: Complex Project (with audio)
### Pattern 4: Component Library Project
## File Templates
### Empty Main Composition
```typescript
import { AbsoluteFill } from "remotion";
import type { VideoNameProps } from "./types";
export function VideoName({}: VideoNameProps) {
return (
<AbsoluteFill>
{/* TODO: Add composition structure via /remotion-composition */}
</AbsoluteFill>
);
}// TODO: Define via /remotion-animation
export const COLORS = {} as const;
export const SPRING_CONFIGS = {} as const;
export const SCENE_TIMING = {} as const;export interface VideoNameProps {
// Add props here
}import { AbsoluteFill } from "remotion";
export function Scene1() {
return (
<AbsoluteFill>
{/* TODO: Implement via /remotion-component-gen */}
</AbsoluteFill>
);
}src/remotion/Root.tsximport { Composition } from "remotion";
import { VideoName } from "./compositions/VideoName";
// Add to RemotionRoot component:
<Composition
id="VideoName"
component={VideoName}
durationInFrames={900} // TODO: Calculate based on requirements
fps={30}
width={1920}
height={1080}
defaultProps={{}}
/>// YouTube (16:9)
{ width: 1920, height: 1080, fps: 30 }
// Instagram Reels / TikTok (9:16)
{ width: 1080, height: 1920, fps: 30 }
// Twitter/X (16:9)
{ width: 1920, height: 1080, fps: 30 }
// Square (1:1)
{ width: 1080, height: 1080, fps: 30 }public/
├── images/
│ ├── logos/
│ ├── backgrounds/
│ └── icons/
├── audio/
│ ├── music/
│ └── sfx/
└── fonts/
└── [custom-fonts].woff2remotion-scaffold (this skill)
↓ outputs: SCAFFOLD_MANIFEST.md
remotion-animation
↓ outputs: ANIMATION_CONFIG.md
remotion-composition
↓ outputs: COMPOSITION_STRUCTURE.md
remotion-component-gen (per scene)
↓ outputs: SCENE_COMPONENT.md
remotion-render-config
↓ outputs: RENDER_CONFIG.md/motion-designer/remotion-animation/remotion-composition/remotion-component-gen/remotion-render-config