Instant Queries by Default
Sync engines enable instant UI by downloading data to the client before it's needed. All read and writes are local and synced with the server in the background.
But there's a catch: almost all realistic apps have way too much data to download ahead of time. There are usually complex permissions too — not all users can read and write all data.
We started the Zero project two years ago to solve these problems and bring the performance of sync to the entire web.
Try it out right now.
Our Gigabugs demo has 1.2 million rows, and loads in less than 2 seconds.
How it Works
You get a client-side API that looks like an embedded database, but to which you can issue arbitrary hybrid queries that span the entire database, including the server.
Behind the scenes, Zero synchronizes query results continuously to a client-side persistent cache. This cache is used automatically for future queries whenever possible.
function Playlist({id}: {id: string}) {
const [playlist] = useQuery(
zero.query.playlist
.related('tracks', track => track
.related('album')
.related('artist')
.orderBy('playcount', 'asc'))
.where('id', id)
.one()
);
const onStar = (id: string, starred: boolean) => {
zero.mutate.track.update({id, starred});
};
// render playlist...
}This architecture provides:
Only with Zero
Zero's query-driven sync enables a really powerful set of features. Some tools offer some of these features, but only Zero offers all of them together.
Fine-Grained Permissions
Define row- and field-level access rules so each user sees exactly the data they're allowed to.
Partial Sync
Only data returned by active queries is synced to the client — no need to ship entire tables.
Client-First Reads & Writes
Queries resolve on the client for instant results. Writes apply immediately and sync seamlessly.
Atomic Transactions
Group multiple writes into one transaction. Every change succeeds together — or the entire batch rolls back.
Our Users Say
Check out what our users have to say about Zero.
Zero completely changed how we think about real-time. The query-driven sync is genius — our app feels instant now.
We tried building our own sync layer. Should've just used Zero from day one. Saved us months of development time.
The permission system is incredibly powerful. We can finally give users real-time collaboration without worrying about data leaks.
Local-first with Zero means our app works offline and syncs seamlessly. Our users don't even notice when their connection drops.
The developer experience is top-notch. Write queries, get reactive updates. It's that simple.
Zero handles the hard parts of sync so we can focus on building features. The performance gains are unreal.
Cloud Zero
Coming very soon
Traditional SaaS
- Managed, monitored, and upgraded by Rocicorp
- Runs in our cloud infrastructure
- Zero setup — get started in minutes
BYOC (Bring Your Own Cloud)
- Managed, monitored, and upgraded by Rocicorp
- Runs in your own AWS VPC
- Data stays in your org with revocable access
Interested?
We've started slowly rolling out to a limited group of users. Get in touch: