# @html-video/studio-next (experiment)
Spike to evaluate integrating [`@hyperframes/studio`](https://github.com/heygen-com/hyperframes) (Apache-2.0)
as our editor UI instead of hand-rolling click-to-edit, timeline, property panel, etc.
## Status (2026-05-28)
- ✅ `pnpm dev` boots a Vite + React app on port 3072
- ✅ `import { SourceEditor } from '@hyperframes/studio'` compiles and renders
- ✅ Side-by-side: CodeMirror editor on the left, srcDoc preview on the right
- ⚠️ `useElementPicker` / `Player` / `Timeline` talk to the iframe via
`postMessage` and require the iframe to host the **hyperframes runtime**
(responds to `{ source: "hf-parent", type: "control", action: "enable-pick-mode" }`
etc). Our agent-generated HTML does not have that runtime, so those
components don't drop in.
## Read this before doing more work here
What we **can** lift directly (no runtime requirement):
- `SourceEditor` — CodeMirror 6 wrapper for HTML / CSS / JS
- `applyPatch`, `parseStyleString`, `mergeStyleIntoTag`, `findElementBlock`
from `@hyperframes/studio/utils`
- `EaseCurveEditor` (visual GSAP curve picker — works on a value/onChange interface)
What we **can't** lift without bigger work:
- `useElementPicker` (postMessage handshake)
- `Player`, `PlayerControls`, `Timeline`, `VideoThumbnail` (require runtime)
- `NLELayout`, `StudioApp` (pull in their Composition + FileManager data model)
## How to run
```bash
pnpm install # from monorepo root
pnpm --filter @html-video/studio-next dev
# → http://127.0.0.1:3072
```
Production studio still lives at `packages/project-studio/` (port 3071).
This package is a spike — do not depend on it.