Skip to content

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.

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.

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.