HTML → MP4 → everywhere

From HTML to launched.
Automatically.

Claude Design makes the animated launch video. perea.dev renders it frame-perfect, cuts every format, adds sound & captions, hosts it, and posts it — one loop, no screen recording, callable by you or your agent.

TriggerRenderRepurposeFinishPublishAutomate
01 — Trigger

Two ways in. Same loop.

A human drops a file, or an agent calls the API. Either path feeds the exact same pipeline.

agent-nativeMCP / API
# Claude finishes the HTML, then:
render_html_to_mp4({
  source: "launch.zip",
  formats: "all",
  audio: true, captions: true,
  publish: true
}) → foundr.host/v/…
Human
Drop test-claude.zip
ZIP, HTML, or folder — everything auto-detected.
02 — Render

Frame-perfect. Not screen-recorded.

We drive the animation timeline frame by frame in headless Chromium — zero dropped frames, identical on any machine.

perea.lab / capturecapturing
frame 0 / 2,8201920×1080 · 60fps · H.264
0%
deterministic capture
seek → snapshot → repeat
yuv420p+faststartcrf 18
03 — Repurpose

One render. A whole launch kit.

The master fans out into every channel in a single pass — no re-rendering, no re-cropping by hand.

X / Twitter
X / Twitter1920×1080 · 16:9 · ~24 MB
LinkedIn
LinkedIn1920×1080 · 16:9 · ~24 MB
Shorts
YT Shorts1080×1920 · 9:16 · ~22 MB
TikTok
TikTok1080×1920 · 9:16 · ~22 MB
Square
Square1080×1080 · 1:1 · ~18 MB
Looping GIF
Looping GIF960×540 · loop · ~6 MB
Poster
Poster frame1920×1080 · PNG · key frame
+ captions .srt
Captions.srt + burned-in variant
one input · 8 deliverables · generated in the same render pass
04 — Finish

Make it publish-ready.

Add a synced soundtrack or AI voiceover, and burn in captions for silent autoplay — where 85% of social video is watched.

If it works, it ships here first.
Soundtrack & voiceoversynced to scene timings
Burned-in captionsauto-transcribed · editable
End card & brand kitlogo · colors · CTA — applied automatically
05 — Publish

A link, not a file.

Hosted on foundr.host with a permanent URL and rich embed — ready to post anywhere, or returned straight to your agent.

https://foundr.host/v/ax93f2
perea — the launch video
Watch the 47s launch film · rendered with perea.dev
foundr.host/v/ax93f2
Post to X· 16:9 · captions onpost ↗
Post to LinkedIn· 16:9 · poster setpost ↗
Post to TikTok· 9:16 · sound onpost ↗
Post to Shorts· 9:16post ↗
06 — Automate

Merge the PR. Launch ships itself.

A GitHub Action runs the whole loop on every release — and the same step is an MCP tool any agent can call.

# .github/workflows/launch.yml
on:
  release: { types: [published] }
jobs:
  launch:
    uses: perea-dev/render-action@v1
    with:
      source: dist/launch.html
      formats: all
      publish: x, linkedin, tiktok
Release publishedgit tag v1.4.0
perea.dev rendersframe-perfect · all formats
Launch kit built+ audio · captions · host
Posted to socialslinks back in the PR

The whole loop.
Autonomous.

From a single animated HTML export to a hosted, multi-format, captioned launch — triggered by a human or an agent, automated on every release.

TriggerRenderRepurposeFinishPublishAutomate