This guide takes you from an empty directory to a five-second video with one visible text edit and an interactive preview.
Prerequisites
- Node.js 22.12 or later
- macOS (Apple silicon or Intel) or Linux x86-64 for local MP4 rendering
- Google Chrome or Chromium for local MP4 rendering; set
CHROME_PATHto its executable if it isn't installed in the standard location
See what you will make
This is the same shape as the scaffold: a 1920 × 1080, five-second timegroup with one text element. Use the controls below to play it, scrub it, and check its time readout before opening your project.
<ef-timegroup mode="fixed" duration="5s" class="w-[1920px] h-[1080px] bg-black flex items-center justify-center">
<ef-text class="text-white text-6xl font-bold">Hello, Editframe!</ef-text>
</ef-timegroup>1. Create a project
npm create @editframe@latestWhen prompted, enter a project directory name such as my-video, then choose a template:
htmluses web components. Its composition is inindex.htmland its Editframe setup is imported bysrc/index.js.reactuses TypeScript and React. Its composition is insrc/Video.tsx, andsrc/main.tsxmounts it withTimelineRoot.
The scaffold installs the dependencies and creates a start script for the preview. To choose the HTML template without prompts, use the CLI's supported flags:
npm create @editframe@latest -- html -d my-video -y --skip-skills2. Make one visible edit
Change the starter text from Your video starts here to Hello, Editframe!:
- In the
htmltemplate, edit the<ef-text>inindex.html. - In the
reacttemplate, edit the<Text>insrc/Video.tsx.
The scaffold already contains the imports, a 1920 × 1080 composition, and a five-second timegroup. Keep those pieces in place for this first pass.
The two edits are the same change in each template:
<!-- index.html -->
<ef-text duration="5s" class="text-white text-4xl">Hello, Editframe!</ef-text>// src/Video.tsx
<Text duration="5s" className="text-white text-4xl">
Hello, Editframe!
</Text>3. Preview the composition
cd my-video
npm startThe preview opens in a browser with hot reload and a timeline scrubber. Save your edit and confirm that the canvas shows Hello, Editframe!. Use the scrubber to inspect the composition at different times.
4. Render an MP4
Install the local runtime once per computer. setup downloads the signed runtime that matches the project's CLI and verifies it before installing:
npx editframe setupThen, from the project root, run:
npx editframe render -o output.mp4The render command uses the project's index.html by default and writes output.mp4 to the current directory. Confirm that the file exists and is non-empty:
ls -lh output.mp4Opening the file should show a five-second 1920 × 1080 MP4 with Hello, Editframe! on screen.
Troubleshooting
- If
npm startcannot find the project dependencies, runnpm installfrommy-video. The scaffold installs them unless you used its--skip-installoption. - If rendering asks you to run
npx editframe setup, the local runtime isn't installed for this computer yet; run it frommy-video, then rerun the render command. - If local rendering reports that it needs Google Chrome or Chromium, install one, or set
CHROME_PATHto the absolute path of its executable, then rerun the render command. - If the preview is blank, confirm that the root timegroup still has its
1920px×1080pxclasses and that the text is inside the timegroup inindex.htmlorsrc/Video.tsx.
Next steps
- Build timelines with the time model — durations,
fixed,contain,fit, sequences, overlaps, and FPS. - Add video — video sources and trimming; continue with
ef-audioandef-imagefor other media. - Add editor controls — playback, scrubbing, volume, and fullscreen controls.
- Build an editor — wire a composition to a hierarchy, canvas, timeline, and controls.
- Automate rendering — validate a token, create a cloud render, and retrieve its result.
- Render in the browser — export with
renderToVideoand track progress. - Render through the API — create server-side render jobs and retrieve their output.