Render video from your app.

Build a composition in HTML, CSS or React and render it to MP4 in the browser, from the CLI or in the cloud. Produce one video or large batches of outputs through the same workflow.

Weekly recap42.6km
  1. Assets and data
  2. Your composition
  3. MP4 video
Illustration: a weekly recap combines activity data, a title and graphics into one video.

Build the video with your existing tools

Elements gives HTML, CSS and React a video timeline. Combine footage, text, graphics, audio and data in a composition you can preview and change.

Keep layout and timing in code. Supply different assets or records to create clips, annotated videos, ads or personalized content without rebuilding the design.

One composition. Many outputs.

Run render jobs independently in parallel. Generate batches of clips, annotated videos, ads or personalized content without provisioning or managing rendering workers.

Applications, agents and automated workflows can submit work through the cloud API. Track each render from creation to completion; Editframe manages the compute behind it.

Jobs run within your organization's concurrent-render limit. Throughput and completion time depend on the workload and available capacity.

Render 1MP4 1Render 2MP4 2Render 3MP4 3
  1. One composition
  2. Independent jobs
  3. Separate MP4s
Illustration: three records supply different inputs to the same composition. Each job has its own status and output.

Choose where the render runs

The same composition runs in the browser, on a developer machine or through the cloud. Choose the execution path that fits your product.

DetailBrowserCLICloud
Best forMP4 export inside your appLocal development and scripted rendersServer-side generation and parallel batches
Runs inThe user's browserHeadless Chrome on your machineEditframe-managed workers
RequiresWebCodecs and a supported encodermacOS or Linux x86-64HTTPS requests from your server
OutputMP4 bytes in your pageAn MP4 on your computerStatus updates and an authenticated MP4 download
AccountNoneNoneEditframe account, by request

Generate video from your server

Send HTML or a bundled composition with the assets and data for each video. Editframe renders the output; your system tracks the job and delivers the result.

  • Track every render

    Read job status or stream progress events.

  • Receive webhooks

    Handle completed and failed renders without maintaining a polling loop.

  • Connect outputs to your data

    Attach metadata to each render and download its MP4 when ready.

Your server uses an authenticated MP4 download, then makes the output available through your application's storage or media route.

createRender.js

import { Client, createRender } from "@editframe/api";
import { readFile } from "node:fs/promises";

const client = new Client(process.env.EDITFRAME_API_KEY);
const compositionHTML = await readFile("./composition.html", "utf8");

const render = await createRender(client, {
  html: compositionHTML,
  metadata: { recordId: "record-001" },
});

// Track render.id or subscribe to webhooks
console.log(render.id, render.status);

Scale rendering without scaling your team

Cloud rendering provides independent execution, job tracking and managed workers for batches of video output. Use it for automated clips, data-driven videos, application exports and generated content.

Talk to us about the volume and concurrency your application needs. Each render follows the same API limits, whether submitted individually or as part of a batch.

Render limits
Weekly recap61.4kmWeekly recap18.1kmWeekly recap42.6km
  1. Your records
  2. Shared composition
  3. One MP4 per record
Illustration: the layout stays the same while each record supplies its own content.
  • Up to 1 hour and 432,000 frames per render
  • Up to 8,192 pixels per side and 120 fps
  • Inline HTML up to 512 KiB, or an uploaded bundle

Build the video. Let Editframe handle the rendering.

Start with a composition you can render locally with no account, or talk to us about cloud access and large-volume output.