BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Zero Reaches 1.0, Marking the First Stable Release of Rocicorp's Web Sync Engine

Zero Reaches 1.0, Marking the First Stable Release of Rocicorp's Web Sync Engine

Listen to this article -  0:00

Rocicorp has shipped Zero 1.0, the first stable release of its general-purpose sync engine for the web, arriving after nearly two years of development, more than 50 releases, thousands of commits, and hundreds of bugfixes. The milestone signals that Rocicorp now fully supports the Zero API and is committing to maintaining it, with any future breaking changes expected to be rare and far smaller than those seen during the alpha period.

Functionally, the release notes describe 1.0 as a very minor update to the previous 0.26.2 build, with the major version bump being largely symbolic and carrying no actual breaking changes. The headline addition is a schema change hook that detects publication changes on Supabase through COMMENT ON PUBLICATION statements, working around Supabase's lack of event trigger support for publications. The release also bundles fixes for corrupted litestream restores, error handling when change data capture is unhealthy, an IPC_CHANNEL_CLOSED race condition during shutdown, orphaned subscriber scenarios, and time and timetz SQL generation.

Zero works by pairing a zero-client library inside the app with a zero-cache service that maintains a read-only replica of a Postgres database. Queries written in ZQL, Zero's streaming query engine, run against the local cache first and return matching results in the next frame, while authoritative results sync from the server in the background. Founder Aaron Boodman has argued on Hacker News that this bring-your-own-database approach is a strength, noting that Zero is "just a fancy cache" that cannot corrupt data and lets teams adopt it incrementally or move off it easily.

Community reaction has been positive on developer experience but more cautious on production readiness. Reviewing the engine, Marmelab found that it delivered on speed and developer experience while flagging some notable limitations:

…some limitations can still be significant, depending on the complexity of the app you want to build and the tech stack you want to use. Here are some examples we noted:

  • Only Postgres is supported for now
  • Postgres views are not synced
  • Some Postgres column types aren’t supported, like array
  • The client API does not allow to react to errors or rejected updates

Critics on Lobsters pointed to a client bundle of 718 KB uncompressed (232 KB gzipped) and the absence of server-side rendering, while a Reddit thread questioned whether stacking a local store, a sync replica, and the source database adds too many layers.

Zero enters a crowded field alongside ElectricSQL, InstantDB, PowerSync, and Convex, and Boodman has pointed developers wanting fully decentralised, end-to-end setups toward Jazz. Server-side rendering itself remains on the roadmap rather than shipped today.

Upgrading is straightforward given the lack of breaking changes:

npm install @rocicorp/zero@1.0

Teams coming from much older builds should still review the per-version release notes for earlier API changes, such as the custom mutator type changes in 0.23, and follow the schema deployment guidance on ordering to avoid downtime during migrations.

About the Author

Rate this Article

Adoption
Style

BT