Liveblocks vs. Yjs: hosting and collaboration features
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. Yjs is an open-source CRDT library that merges concurrent edits to shared maps, arrays, and text, with bindings for many editors and a choice of network providers.
Which should you choose?
This is not an either/or choice. Yjs is a library that merges edits inside a
document; it does not connect people, store the document, or check who can open
it. Liveblocks is a platform that does those things, and it
provides Yjs as one of its document
models: @liveblocks/yjs is a Yjs provider, and the Tiptap, BlockNote, and
Lexical integrations run on Yjs underneath. Liveblocks also has its own CRDT,
Storage with LiveText, for when you don't want a Y.Doc at all.
The real decision is where your Yjs document lives. Choose Liveblocks when you want a working collaborative editor or board without running a provider, persistence, and auth yourself: a team editing the same proposal with comments in the margin, or a canvas where text sits inside shapes next to positions and colors. Choose Yjs on your own provider when you already run one you are happy with, or when you need something only that setup offers, such as peer-to-peer sync over WebRTC. Either way you keep Yjs and your editor binding; see alternative or provider? for how the pieces fit.
Separate the library from the service
| Area | Liveblocks | Yjs |
|---|---|---|
| Data model | Storage, with LiveText for text, or a Y.Doc through Liveblocks Yjs. | A Y.Doc holding shared types such as Y.Map, Y.Array, and Y.Text. |
| Persistence | Built in. Documents are kept until you delete them. | Not included. A provider or database adapter must store the updates. |
| Hosting | Managed service. Self-hosting available on the Enterprise plan. | A provider server you run, such as y-websocket, or a hosted Yjs service. |
| Conflict resolution | CRDT-based. Concurrent edits to objects, lists, maps, and text merge automatically. | Yjs CRDT, the same as the Liveblocks Yjs integration. |
| Presence | Cursors, selections, and who is online, built in. | Awareness, if your provider carries it. |
| Text editing | Built in, with Tiptap, BlockNote, Lexical, and more. | Editor bindings for Tiptap, ProseMirror, CodeMirror, Monaco, Quill, Slate, and more. |
| Ready-made UI | Cursors, avatar stacks, comments, and notifications. | None. Yjs is a data library. |
| Authentication | Your server issues access tokens using your existing auth. | None. Your provider checks credentials when a client connects. |
| The main question | Which parts of your app should people edit together? | Which provider will connect, store, and secure your documents? |
Is Liveblocks an alternative to Yjs or a Yjs provider?
Both. Liveblocks Yjs is a provider for a
Y.Doc: Yjs defines the shared data, the provider connects people, and
Liveblocks stores the document. You keep Yjs and your editor binding, and use
Liveblocks for hosting, authentication, comments, and notifications. Liveblocks
Storage with
LiveText is the alternative: a separate
CRDT document store that does not use Yjs at all.
For a code editor with Yjs, the pieces are: editor binding → Y.Doc →
Liveblocks Yjs provider → room. Your own authentication decides who can open the
room. Both the Y.Doc and any Storage data live in the same room, so you can
mix them.
Which to pick for a given document is covered in the LiveText vs Yjs guide.
Keep Yjs or move to LiveText?
Keep Yjs if your editor already uses it. Adding Liveblocks does not require
converting the document to LiveText; connect the existing Y.Doc through the
supported integration and check the migration path before changing formats.
For a new canvas with text inside shapes, LiveText keeps the text in the same
Storage tree as the surrounding structured data, so positions, properties, and
words share one document, one history, and one snapshot. For a long-form editor,
or a binding that depends on the Yjs ecosystem, Yjs is the better fit. The
LiveText vs Yjs guide covers limits and editor
support in detail.
What does a production Yjs editor need?
A provider, somewhere to store the document, a way to authorize access, and a plan for backup, export, and deletion. Yjs itself covers none of these. The Yjs ecosystem includes several providers, including hosted services, so running your own server is optional.
For a specification editor, the responsibilities split like this:
| Responsibility | Yjs on its own | With Liveblocks as the provider |
|---|---|---|
| Editor content | Y.Doc and the editor binding. | The same Y.Doc and binding. |
| Hosting and persistence | A provider you pick, plus a database adapter. | The Liveblocks room. Documents are stored automatically. |
| Authorization | Business rules wired into your provider. | Business rules in your server, which issues room access tokens. |
| Review workflow | Pick commenting and notification services. | Liveblocks Comments and Notifications in the same room. |
Switching provider does not change the document format. Permissions, history, and comments from a previous service still need their own migration, because they are specific to that service. See the list of integrations and the authentication reference.
Pricing and deployment
Yjs is free and open source, so the library itself costs nothing. The cost is in what runs around it: a provider server, a database for stored documents, authentication in front of the connection, comments and notifications if you need them, and the time spent keeping all of that running. Compare that complete stack with the Liveblocks plan and usage your editor needs.
A Yjs provider such as y-websocket runs on your own servers. 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
Try the
editor example,
then pick a supported binding from the
integrations page. To decide between
LiveText and a Y.Doc, read LiveText vs Yjs.
Start building with Liveblocks for free. Follow the setup guide for your project.