Liveblocks vs. Rocicorp Zero: shared editing and queries
Liveblocks is a realtime collaboration platform that allows you to build multiplayer applications where users and agents can work together. It provides a sync engine that powers shared documents, text editing, presence, and more. Rocicorp Zero is an open-source sync engine that runs queries on the client against a local cache of your Postgres data and sends writes through custom mutators that run on the client and then on your server.
Which should you choose?
Zero and Liveblocks solve different problems. Zero is how your app reads and writes application records, whereas Liveblocks is how people edit artifacts together.
Choose Liveblocks when several people edit the same canvas, document, or board at once and their edits need to merge without overwriting each other, such as shapes and text on a whiteboard. Choose Zero when the client works with filtered views of your records, such as a task list filtered by assignee and due date, and you want those views to update instantly as rows change. Some products use both: Zero for the records and Liveblocks for the content people edit together.
Compare the programming model
| Area | Liveblocks | Rocicorp Zero |
|---|---|---|
| Main abstraction | Shared documents in Storage. | Queries over a local cache of your Postgres data. |
| Data on the client | The shared document a user has opened. | The rows your active queries need. |
| Writes | Edits to the document from the client or from your server. | Custom mutators that run optimistically on the client, then on your server. |
| Conflict resolution | CRDT-based. Concurrent edits to objects, lists, maps, and text merge automatically. | Your server decides. The server's result of each mutator is final, and the client's optimistic change is replaced by it. |
| Text editing | Built in, with Tiptap, BlockNote, Lexical, and more. | Not built in. Requires a CRDT library. |
| Ready-made UI | Cursors, avatar stacks, comments, and notifications. | None. Zero provides data bindings for React and SolidJS, not components. |
| Authentication | Your server issues access tokens using your existing auth. | Your server issues a token, such as a JWT, that the client passes to Zero. |
| Offline editing | Edits to a loaded document are queued and sent on reconnect. | Reads work from synced data. Writes are rejected while disconnected. |
| Self-hosting | Paid Enterprise add-on. | Always. You run zero-cache, Postgres, and your API server. |
| The main question | Which parts of your app should people edit together? | Which queries and mutators does the client need? |
Use queries when users work across subsets of your records. Use a shared document when people edit the same canvas, document, or workflow. For a project-management app, the two sit side by side:
| Surface | Rocicorp Zero | Liveblocks |
|---|---|---|
| My overdue tasks | Query the tasks matching the user and date filter. The list updates as rows change. | Keep this app-wide query in your back end. |
| Reassign one task | A mutator changes the record and every view showing it reacts. | Put the field in a document only if it belongs to something people edit together. |
| Rearrange and edit a planning canvas | Not a fit on its own. You would need to add a CRDT around the records. | Store shapes in Storage and text through an editor integration. |
Combining the two is application code. Give each editable field one source of truth: records changed through Zero mutators and read through Zero queries, and shared content in Liveblocks. The canvas guide shows how to model a canvas as a document.
Does Zero support offline writes?
No, not beyond brief interruptions. Zero's connection docs state that it does not support offline writes: reads keep working from synced data, but writes are rejected while disconnected. Writes are queued only during the short connecting state. Zero's offline docs explain that this is a deliberate design choice, not a missing feature.
Liveblocks Storage applies edits locally right away, queues the unconfirmed ones, and sends them when the connection returns. This covers a document already loaded in the client; unsent edits are not kept across a browser restart. For someone editing an open canvas through a network drop, that is a concrete difference. If you need a durable offline database across sessions, neither product gives you that on its own.
Pricing and deployment
Zero is open source and self-hosted. The cost is your own infrastructure: zero-cache, Postgres, and the API server that runs your mutators, plus support and upgrades. Liveblocks is a hosted service billed by usage, and your application services around its documents are separate. Your plan's credits apply once across all Liveblocks usage.
Liveblocks offers self-hosting as a paid add-on on the Enterprise plan. Either way, your own servers, database, backups, and operations are part of the budget.
Get started
Open the whiteboard example and use the canvas guide to map your editing interactions to a shared document.
Start building with Liveblocks for free. For self-hosting, contact sales.