# selfstore vs Zero Source: https://selfstore.dev/compare/zero Zero syncs a slice of your Postgres to the client with instant local queries; selfstore syncs an encrypted file between one user's devices with no backend. ## What Zero is Rocicorp's third run at this problem, after Replicache, and it shows. You declare queries; Zero syncs exactly the rows behind them to the client, serves them from a local store at memory speed, applies your writes optimistically and reconciles them against Postgres. The developer experience is the selling point and it earns it. The architecture is explicit about what it is: your Postgres is the source of truth, and a `zero-cache` process sits in front of it. That is not a caveat, it is the design - the server is where authority, permissions and durability live. ## What selfstore is The opposite premise. There is no source of truth on a server because there is no server: the user's device holds the data, the durable copy is an encrypted file on storage they own, and other devices converge by merging that file. Which means selfstore cannot do what Zero does. No multiplayer, no server-enforced permissions, no partial sync of a big shared dataset, no live queries. If your app is a product with accounts and a database, Zero is answering your question and this page should send you there. | | Zero | selfstore | | --- | --- | --- | | Source of truth | Your Postgres | The user's device | | Backend | Postgres + zero-cache | None | | Queries | Declarative, synced, live | None (snapshot model) | | Multiplayer | Yes | No | | Who can read the data | Your server | Only the user | | Offline | Supported | The normal case | | Cost at rest | Hosting | Zero | ## Use Zero when - You have (or want) a Postgres, accounts, and shared data between users. - Server-side authorization is a requirement. - You want local-speed queries without giving up a backend. ## Use selfstore when - The data is one person's, and you would rather never hold it. - There is no backend and you do not want to acquire one - no bill, no migrations, no breach surface, nothing to keep alive for a side project in five years. Map of this site for a model: https://selfstore.dev/llms.txt Every page in one file: https://selfstore.dev/llms-full.txt