Skip to main content
This guide walks you through the core SDK loop from scratch. You will open a composition HTML string, find and edit elements by their stable hf-id, serialize the result, and then extend the example to save changes to disk automatically.

Open, edit, serialize

1

Install the package

2

Open a composition

openComposition parses the HTML, stamps any elements that lack data-hf-id attributes, and returns a Composition session.
The call is async because it runs the ID-stamping pass over the DOM before returning.
3

Find elements

Use getElements() for a flat snapshot of everything in the composition, or find() to filter by tag, text content, data-name attribute, track index, or sub-composition host.
find() returns an array of scopedId strings. For top-level elements, scopedId === id. For elements inside inlined sub-compositions, it is "hf-HOST/hf-LEAF".
4

Edit elements with typed methods

Typed methods are the most readable way to mutate a composition. Each one translates directly into a dispatched EditOp and emits a patch event.
Use batch() when several mutations should collapse into one undo entry, one persist write, and one change event:
5

Serialize and dispose

serialize() returns the full updated HTML string. Call dispose() when you are done to release event handlers and any internal state.

Add a persistence adapter

The headless pattern above is fine for one-shot transforms. When you want the SDK to autosave after every edit, pass a PersistAdapter. The filesystem adapter (@hyperframes/sdk/adapters/fs) writes to a local directory and keeps a rolling version history.
The adapter writes ./project/index.html after every mutation and keeps up to 20 version snapshots under ./project/.hf-versions/.
Disabling undo (history: false) does not disable autosave. The two are independent. Passing history: false is only necessary when you are managing the undo stack yourself.

Next steps

Querying & Editing Elements

FindQuery fields, scopedId for sub-compositions, batch semantics, and element handles.

Undo, Redo & Patches

History module, patch events for host sync, and applyPatches loop prevention.

Persistence

Adapter selection, version history, and implementing a custom adapter.

openComposition reference

Full option reference — adapters, overrides, coalesce window, and more.