What is datadata?
datadata is a sync engine where everything — including the schemas — is a document. In sync-engine terms, that makes it a server-authoritative document sync engine: clients subscribe to documents, edit them optimistically, and an authoritative server orders, validates, and broadcasts every change in real time. Offline edits replay on reconnect, and an opt-in persistence adapter carries both writes and reads across a reload — but there is no distributed merge for structured data: the server stays in charge, by design.
The name is a working title.
The pieces
Section titled “The pieces”datadata is a TypeScript library, not a hosted service. It currently consists of:
- The core library — client, server, live and staged sessions, the schema and presence systems, and an in-process transport, with no opinion about where each side runs.
- A Cloudflare backend — runs the server inside a Durable Object with SQLite storage and WebSocket transport. This is the current production deployment shape; see Architecture.
- React bindings — a Jotai-based integration for subscribing to documents from React components.
- Devtools — a panel for inspecting live documents, subscriptions, and pending optimistic updates.
The model in one paragraph
Section titled “The model in one paragraph”Everything is a document: a typed JSON value with a server-assigned sequence number. Structured changes travel as JSON Patch; collaborative text lives in embedded Yjs documents. Schemas are themselves documents, editable through the same API as user data. On top of the live client sits the staged session: a staging area where a human or an AI agent accumulates changes, previews conflicts against the live head, and commits atomically.
Who this site is for
Section titled “Who this site is for”- Application developers evaluating sync engines — start with Documents all the way down and When to use it.
- Sync-engine developers comparing notes — start with Design decisions and the wire protocol. We’d genuinely like to compare notes.