editframe/render
Render your video.
Browser, CLI, or cloud.
Export in your app, render from your terminal, or automate with the cloud. One composition works across all three.
Explore the architecture
| Browser | CLI | Cloud | |
|---|---|---|---|
| Initiated by | A person in your product | A developer or CI job | Your server or an automated workflow |
| Execution | WebCodecs in the browser | Headless Chrome and FFmpeg | A managed asynchronous job |
| Completion | Encoded bytes returned to your UI | A file written to your chosen path | Status, stream, or webhook for your application |
| API key | No | No | Yes |
Add an export button.
Call exportVideo() on your workbench. Connect progress events to your UI and save the resulting MP4.
import "@editframe/elements"
const workbench = document.querySelector("ef-workbench")
const result = await workbench.exportVideo()
// Download, upload, or attach result.buffer.React composition
Render the React components you already use.
Wrap a React composition with TimelineRoot so local export and headless rendering can mount a working copy of it. useTimingInfo keeps the component tied to timeline time.
import { TimelineRoot, Timegroup, useTimingInfo }
from "@editframe/react"
function Scene({ id }) {
const { percentComplete } = useTimingInfo()
return <Timegroup id={id} mode="fixed" duration="5s"
style={{ opacity: percentComplete }} />
}
<TimelineRoot id="root" component={Scene} />Motion catalog
Start from a working composition.
Browse all studies ↗Render your first video.
Start locally. Add cloud rendering when you need it.

