Instant Queries by Default
Gigabugs – Our 1.2 million row bug tracker demo.
Sync engines enable instant UI by downloading data to the client ahead of time. All read and writes happen locally, and changes are synced in the background.
But there's a catch. Apps usually have far too much data to download up-front. They also often have permissions – not all users can read and write all data.
We created Zero 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
Zero has two parts: zero-client and zero-cache.
Zero-cache runs in the cloud and maintains a read-only replica of your Postgres DB in SQLite on fast attached NVMe storage.
On the client, you get an API that looks like an embedded database, but to which you can issue arbitrary "hybrid queries" that span the entire database, including the server:
import {queries} from 'queries.ts'
import {mutators} from 'mutators.ts'
function Playlist({id}: {id: string}) {
// This usually resolves *instantly*, and updates reactively
// as server data changes. Just wire it directly to your UI –
// no HTTP APIs, no state management no realtime goop.
const [playlist] = useQuery(
queries.playlist.byID({id})
)
const onStar = (id: string, starred: boolean) => {
mutators.playlist.star({id, starred})
}
// render playlist...
}Zero uses a custom-built streaming query engine to efficiently sync query results to a persistent cache on the client. This cache is used automatically for client-side reads and writes when possible.
With thoughtful query preloading, this architecture means that almost all interactions feel instant.
Features
Instant Reads
Queries are always client-first, returning matching local data immediately – literally in the next frame.
Instant Writes
Writes are always client-first, updating all open queries instantly. Edge cases like reverts are handled automatically.
Automatic Reactivity
All queries are reactive. When data changes on the server – even from non-Zero clients – affected queries are automatically updated.
Fast Startup
Query-driven sync provides precise control over when data is synced, enabling you to balance startup and interaction performance.
Server Authority
All reads and writes flow through your code on your server, giving you complete control over permissions and business logic.
Easy Integration
Zero works with normal Postgres databases, using normal Postgres schemas, with normal APIs and libraries.
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.
Fully-managed zero-cache, on either your servers or ours.

Runs in Rocicorp's AWS account.
Hobby
- 10 GB storage
- 3 shared vCPU
- Support via public Discord
- Additional storage: $0.20/GB
- Dedicated vCPU: $50 each
Professional
- 100 GB storage
- 6 dedicated vCPU
- Shared Slack channel
- Additional storage: $0.20/GB
- Additional vCPU: $50
Runs in your AWS account.
Bring Your Own Cloud
- Data stays in your AWS account
- Rocicorp has limited privileges
- AWS infra billed to your account
- Shared Slack channel
- Includes 10 vCPU
- Additional vCPU: $20
Get in Touch
Hosting is in private beta. Message us and we'll get you onboarded.