Files
hyperframes/docs/developers/index.mdx
T
ukimsanov 158d0fea1f docs: stop serving render masters as if they were deliverables
Thirty-two published videos were the raw render output. One 20-second catalog
preview was 60 MB at 25 Mbps — Blu-ray bitrate for a screen capture in a docs
page. Nothing autoplays, so no page shipped that silently, but a reader who
pressed play paid for it.

Re-encoded at 1280 wide, CRF 28, faststart, keeping audio where it existed.
Measured PSNR against the originals at ~38.5 dB, which is visually identical —
the first check I ran returned nothing and I mistook that for a pass, so this
number comes from a filter that actually worked.

Worth correcting one thing I said earlier: the catalog is not systemically
over-encoded. 190 videos, 0.36 GB, about 1.9 MB each. Six were over 10 MB. I
found two monsters and generalised from them.

Pages carrying more than 8 MB of video: 26 before, and the heaviest went from
140 MB to under 15 MB.

The durable fix is in generate-catalog-previews.ts, which had no delivery encode
at all — it published the render master directly. It has a web pass now, so the
next preview is born small instead of being cleaned up later.
2026-08-04 11:33:52 -07:00

94 lines
3.1 KiB
Plaintext

---
title: "Build on HyperFrames"
sidebarTitle: "Developers"
description: "Choose the smallest HyperFrames surface for automation, editing, playback, rendering, or generated compositions."
---
import { DocsVideo } from "/snippets/docs-video.jsx";
<div className="hf-docs-video-frame">
<DocsVideo
title="A HyperFrames composition shown through the CLI, SDK, Player, and rendering infrastructure."
src="https://static.heygen.ai/hyperframes-oss/docs/images/showcase/journey-developers-v3-v2.mp4"
poster="https://static.heygen.ai/hyperframes-oss/docs/images/showcase/journey-developers-v3.jpg"
/>
</div>
Use this path when you want to write a composition yourself, automate a project,
or add HyperFrames to another product. If you only want an agent to make a
video, start with the [first-video guide](/quickstart).
## Write and render a project yourself
Create a blank project and open it in Studio:
```bash
npx hyperframes init my-video --example blank
cd my-video
npx hyperframes preview
```
The project is ordinary HTML. The Reference Project used in the beginner path
starts with this real composition root:
```html
<div
id="root"
data-composition-id="main"
data-start="0"
data-duration="10"
data-width="1920"
data-height="1080"
>
<div class="clip" data-start="0" data-duration="10" data-track-index="1">
<!-- Ordinary HTML, CSS, images, and timed media. -->
</div>
</div>
```
The project template supplies the composition root, viewport, and duration.
HTML and CSS control what appears; `data-*` attributes control when it appears.
You can [inspect the complete project](https://github.com/heygen-com/hyperframes/tree/main/examples/docs-reference-project)
before choosing an integration surface.
When the project is ready:
```bash
npx hyperframes check
npx hyperframes render --output video.mp4
```
## Add HyperFrames to an application
Choose the smallest surface that completes the job:
<CardGroup cols={2}>
<Card title="CLI" icon="terminal" href="/developers/cli">
Run checks and renders from a script or CI job.
</Card>
<Card title="SDK quickstart" icon="code" href="/sdk/quickstart">
Inspect and change composition HTML from an application.
</Card>
<Card title="Player" icon="circle-play" href="/packages/player">
Embed a composition and control playback.
</Card>
<Card title="Rendering infrastructure" icon="cloud" href="/deploy/overview">
Render from a Node service, managed cloud, or infrastructure you operate.
</Card>
</CardGroup>
Start with the CLI for project-level automation. Add the SDK only when code
must inspect or edit the source, and add the Player only when a page needs live
playback. Producer and Engine are lower rendering layers, not required setup.
## Understand the architecture
The [developer overview](/developers/overview) explains how the composition,
CLI, SDK, Player, Producer, and Engine fit together. Use the
[HTML schema](/reference/html-schema) when generating source directly.
## Related topics
- [Understand the complete application architecture](/developers/overview)
- [Automate a project with the CLI](/developers/cli)
- [Edit composition HTML with the SDK](/sdk/quickstart)