Docukit
DocNode y DocSync Monorepo. Type-safe documents with conflict resolution. Faster than any CRDT.
Install / Use
/learn @docukit/DocukitREADME
What is Docukit?
Docukit is a set of libraries for building local-first applications: type-safe document models, real-time collaboration, and optional sync backends. Use DocNode for your document layer (with optional Lexical bindings) and DocSync when you need multi-client sync over WebSockets.
| Package | Description |
| ----------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| @docukit/docnode | Type-safe document manager (OT/CRDT), undo manager, and schema normalization |
| @docukit/docsync | CRDT-agnostic sync protocol; works with DocNode, Yjs, Loro, and others |
| @docukit/docnode-lexical | Bind DocNode to Lexical for rich-text editors and presence |
Full docs, comparison tables (DocNode vs Yjs, DocSync vs Hocuspocus), and examples: docukit.dev.
Quick start
npm i @docukit/docnode
import { Doc, defineNode, string } from "@docukit/docnode";
const PageNode = defineNode({
type: "page",
state: { title: string(""), body: string("") },
});
const doc = new Doc({ type: "page", extensions: [{ nodes: [PageNode] }] });
doc.root.state.title.set("Hello, local-first.");
See the DocNode getting started and DocSync getting started guides for more.
Why Docukit?
- Type-safe — Define nodes and state with TypeScript; get full inference and fewer runtime bugs.
- Local-first — Documents live locally; sync when connected. Works offline and scales to real-time.
- Flexible — Use DocNode alone, or add DocSync for server-backed sync. DocSync is CRDT-agnostic, so you can pair it with Yjs, Loro, or other CRDTs if you prefer.
Links
Contributing / local dev: pnpm i then pnpm dev.
Related Skills
node-connect
341.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.5kCommit, push, and open a PR

