Strata Sync vs Zero
Both are server-authoritative sync engines over your own Postgres. Zero runs zero-cache beside the database and gives you ZQL, its own query language. Strata Sync registers routes on your app and has you declare model classes.
The short answer
Pick Zero if you want reactive queries in a purpose-built query language and you are willing to run zero-cache next to your database.
Pick Strata Sync if you want Linear’s architecture: model classes in TypeScript, a server-sequenced log, and a sync server that is a set of routes in your own Fastify app.
What you deploy
Zero adds a process. zero-cache sits between your client and Postgres and has to be run, scaled and monitored. Strata Sync adds routes to the app you already deploy, with Redis optional for fan-out. This is the difference most likely to decide it, and it cuts both ways: a separate cache is also a thing you can scale on its own.
How you ask for data
Zero ships ZQL, and queries are subscriptions that update as data changes. Strata Sync has you declare model classes with @ClientModel and @Property and read them through typed queries and hooks. Reads hit the local copy, so they are synchronous once a model is loaded, and there is no new query language.
Conflicts and text
Both are server-authoritative and both rebase. Strata Sync resolves per field, so two people editing different fields of one row never collide, and a client catches up after a week offline by asking for everything after one integer. Rich text uses Yjs, which ships in the box. With Zero you bring your own CRDT. See the sync protocol and Linear’s sync engine, open-sourced.
When to pick Zero
- You want queries as the main abstraction and you like ZQL.
- You are happy to operate
zero-cache. - You would rather write queries than declare model classes.
- You want a team whose whole product this is. Strata Sync is one author plus contributors, in production on one product.
Sync engines are a real commitment, so read both sets of docs before choosing. For the wider field, see the sync engine comparison.
Common questions
Get started
One command. It scaffolds a working app with the sync server wired up.