@jmnpr/craft
Editor primitives: CRDT collaboration via Yjs, multi-lens views, undo that survives merges, offline-first sync. The kernel under Beats and inside Arqo.
Why this exists
Real-time collaborative editors are hard. Real-time collaborative editors that survive offline use, undo properly, and support multi-lens views — the same document seen as a beat board, a script, and an outline simultaneously — are very hard. Most teams give up and ship one of those modes badly.
@jmnpr/craft is the kernel that does all three. It powers the real-time work in Beats and the offline-first drafting in Arqo. Same library. Different surfaces.
What's inside
- CRDT collab
- Yjs underneath. Presence. Awareness. Cursor sync. Conflict-free merges across offline and online clients.
- Multi-lens
- One document, multiple structured views. Edit a beat in the beat board, see the change in the script lens, in the outline, in the sides.
- Undo across merges
- Undo stacks that survive remote edits and offline reconciliation. Undo stops being a footgun in a collaborative document.
- Offline-first
- Local-first by default. Sync when online. No "you’ve been disconnected" modal, ever.
- Storage adapters
- IndexedDB, filesystem, encrypted local. Plug your own.
Licensing
- MIT
- For open-source projects.
- Commercial
- For closed-source / commercial use.
- Pricing
- Posted at v1.
Status
Battle-tested in Arqo and Beats internals.
Public release on deck · v1 with @jmnpr/ui.
GET NOTIFIED — V1 SHIPS WITH @JMNPR/UI
@jmnpr/craft ships next. Want a heads-up?
One email when v1 lands. No drip, no upsell.