Liveblocks vs. PowerSync: shared editing and offline data
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. PowerSync is a sync service that keeps a local SQLite database on each device in sync with your Postgres, MongoDB, or MySQL database and uploads local writes to your back end.
Which should you choose?
PowerSync and Liveblocks solve different problems. PowerSync is how each device gets an offline copy of your database, whereas Liveblocks is how people edit artifacts together.
Choose Liveblocks when several people work on the same document, canvas, or board at once, and their edits need to merge without overwriting each other. Choose PowerSync when each user needs a local, queryable copy of their own records that keeps working offline, such as a field technician's job list, and your back end should be the one to apply their writes. Some products use both: PowerSync for the records each device carries offline, and Liveblocks for the documents people edit together.
Compare the data and write paths
| Area | Liveblocks | PowerSync |
|---|---|---|
| Client data model | Shared documents in Storage. | Local SQLite tables. |
| Data on the client | The documents in the rooms you open. | Selected rows from your Postgres, MongoDB, or MySQL database. |
| Writes | Client and server APIs edit the document directly. | Local SQLite changes queued for upload to your back end. |
| Offline writes | Queued while disconnected and sent on reconnect, within the same session. | Durable. The local database and upload queue survive app restarts. |
| Conflict resolution | CRDT-based. Concurrent edits to objects, lists, maps, and text merge automatically. | Your server decides. It applies each uploaded write with your own rules. |
| Text editing | Built in, with Tiptap, BlockNote, Lexical, and more. | Not built in. PowerSync publishes a guide for wiring up Yjs yourself. |
| Ready-made UI | Cursors, avatar stacks, comments, and notifications. | None. PowerSync ships client SDKs, not UI components. |
| Authentication | Your server issues access tokens using your existing auth. | Your auth provider issues JWTs that the PowerSync Service verifies. |
| Self-hosting | Paid add-on on the Enterprise plan. | Free source-available Open Edition, or a paid Enterprise Self-Hosted plan. |
| The main question | Which parts of your app should people edit together? | Which rows does each device need offline, and how does your back end apply its writes? |
They make different guarantees. PowerSync keeps a full SQLite database on the device and a durable queue of changes to upload, so the app works after a restart with no connection. Liveblocks Sync keeps a loaded document up to date and, if the connection drops, holds unconfirmed edits until it reconnects. That covers a flaky connection during a session, not a device that stays offline for a day.
| Requirement | PowerSync | Liveblocks Storage |
|---|---|---|
| Query assigned jobs while offline | Query the local SQLite database. | Read the document that is already loaded. |
| Queue writes for a later upload | Durable upload queue. Your back end validates each change. | Edits are queued for the rest of the current session. |
| Reopen after the app has closed | The local database and queue are still there. | Reconnecting resumes the loaded session. Keeping edits across restarts is up to you. |
| Merge edits inside a paragraph | Add a CRDT yourself, following the Yjs guide. | Use a built-in text editing integration. |
Choose PowerSync when an offline relational dataset is the core requirement. Choose Liveblocks when the core of the feature is a shared document with editing and review built around it. A product may have both.
A PowerSync client reads from local SQLite. Writes update the local database and enter an upload queue. Your upload code sends those changes to your back end, where you apply business rules and authorization. Failed uploads are retried when the connection returns.
Take a field-service app where a technician needs an assigned set of jobs, equipment records, and forms while disconnected. What matters is the local dataset, the queries, how uploads behave, and what happens to rejected changes across the whole visit. That is what PowerSync's database-centered model is built for.
For a design tool where people work on the same canvas, what matters is how concurrent edits merge and what everyone sees while they work. Liveblocks fits that without making a local relational database the app's primary client model.
Does PowerSync merge concurrent edits?
Not on its own. PowerSync uploads each queued write to your back end, and your write API decides how to apply it. Its documentation on handling update conflicts covers several strategies, from last write wins to custom merge logic, but the code is yours.
For collaborative text, PowerSync's Yjs integration guide shows how to store Yjs updates as rows and sync them through PowerSync. Compare that whole setup, including document storage, uploads, and how concurrent edits behave, with a Liveblocks editor integration, where the CRDT and the sync are already connected.
Pricing and deployment
PowerSync Pro starts at $49 per month and includes 30 GB of data synced, 10 GB of data hosted on the PowerSync Service, and 1,000 peak concurrent clients. Beyond that, synced and hosted data are $1 per GB and concurrent clients are $30 per 1,000. A free plan covers small projects. On top of that, budget your source database and the write API that applies uploads. For Liveblocks, budget Sync usage plus the application services around the documents. Comments and Notifications are billed as their own usage. Your plan's credits apply once across all Liveblocks usage.
PowerSync can be self-hosted with its source-available Open Edition. 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
Explore the whiteboard example, then use the canvas guide to separate the canvas people edit together from the records your app needs offline.
Start building with Liveblocks for free. For self-hosting, contact sales.