Skip to main content
Hyperframes includes starter templates to help you scaffold compositions quickly. Each template gives you a working project with the correct composition structure, data attributes, and a GSAP timeline already wired up.
Terminal
npx hyperframes init my-video --template <name>

Landscape Templates

Warm GrainBranding & lifestyle
Play ModeSocial media
Swiss GridCorporate & technical
Kinetic TypePromos & title cards
Decision TreeExplainers & tutorials
Product PromoProduct showcases
NYT GraphData stories

Portrait Templates

VignelliHeadlines & announcements
Looking for a minimal starting point? Use blank — it gives you an empty composition with just the scaffolding, no visual design.
Terminal
npx hyperframes init my-video --template blank

Choosing a Template

TemplateStyleFormatBest for
warm-grainOrganic, texturedLandscapeLifestyle, branding, editorial
play-modeEnergetic, elasticLandscapeSocial media, product launches
swiss-gridClean, structuredLandscapeCorporate, data, technical
kinetic-typeDramatic typeLandscapePromos, intros, title cards
decision-treeDiagrammaticLandscapeExplainers, tutorials
product-promoMulti-sceneLandscapeProduct showcases, demos
nyt-graphEditorial dataLandscapeData stories, reports
vignelliBold, typographicPortraitHeadlines, announcements
blankMinimal scaffoldingFull control, agent-generated

Template Details

warm-grain

Cream-toned aesthetic with grain texture overlay.What it produces: A composition with warm color grading, textured grain, and smooth transitions. Includes an intro sub-composition and captions support.
my-video/
├── meta.json
├── index.html
├── compositions/
│   ├── intro.html
│   ├── graphics.html
│   └── captions.html
└── assets/

Passing a Source Video

Terminal
npx hyperframes init my-video --template warm-grain --video ./my-clip.mp4
The CLI will probe the video for duration, resolution, and codec. If the video uses an incompatible codec, it will be automatically transcoded to H.264 MP4 if FFmpeg is available.

Custom Templates

Any directory with an index.html can serve as a template. Your custom template needs:
  1. An index.html with a data-composition-id root element
  2. A GSAP timeline registered in window.__timelines
  3. Any assets in the same directory or a subdirectory
index.html
<div id="root" data-composition-id="my-template"
     data-start="0" data-width="1920" data-height="1080">

  <!-- Your elements here -->

  <script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>
  <script>
    const tl = gsap.timeline({ paused: true });
    // Add your animations...
    window.__timelines = window.__timelines || {};
    window.__timelines["my-template"] = tl;
  </script>
</div>
After creating a custom template, validate it with the linter:
Terminal
npx hyperframes lint

Next Steps

Quickstart

Create, preview, and render your first video

GSAP Animation

Add animations to your template

Compositions

Understand the composition data model

Rendering

Render your composition to MP4