What Zero 1.0 Is and Why It Matters Now
Zero 1.0 is a general-purpose web sync engine that pairs a browser client with a server cache to keep application state in step with a backing Postgres database, handling real-time data sync so front-end developers can code against a local view while the engine manages network latency and consistency in the background. Rocicorp’s 1.0 label comes after nearly two years of development, more than 50 releases, thousands of commits, and hundreds of bugfixes, signaling a stable API that teams can treat as production-ready. Functionally, the jump from 0.26.2 is small, but the version number carries weight: it means future breaking changes should be rare and limited in scope compared to the alpha period. For teams that were waiting to adopt Zero until it left beta, this release removes that uncertainty and frames Zero as a tool they can support over the long term.
Inside the Web Sync Engine: How Zero Works
Zero’s architecture is built around a zero-client library in the app and a zero-cache service that hosts a read-only replica of a Postgres database. Queries are written in ZQL, Zero’s streaming query language, and run against the local cache first, returning matching results in the next frame before syncing authoritative results from the server. Rocicorp founder Aaron Boodman has described Zero as “just a fancy cache” that cannot corrupt the source database, since the canonical data still lives in Postgres. This bring-your-own-database model lets teams connect Zero to existing Postgres deployments instead of migrating to a proprietary backend. The engine targets interactive web applications where optimistic UI and offline-friendly behavior matter, filling a gap between simple REST polling and complex, hand-rolled synchronization logic built on top of change data capture streams and custom caches.
Supabase Integration and the New Schema Change Hook
The headline feature in Zero 1.0 is a schema change hook tailored for Supabase integration. Supabase currently lacks event trigger support for publications, which makes it hard to detect when a publication’s schema changes. Zero works around this by listening for COMMENT ON PUBLICATION statements that signal publication updates, allowing the engine to adjust its sync behavior without manual intervention. For developers, this means database schema evolution no longer needs to be tightly choreographed with application deploys to avoid sync breakage. The hook helps keep Zero’s read-only Postgres replica in line with the primary database definition, reducing downtime risks when tables or columns change. In practice, teams using Supabase for hosting Postgres gain smoother real-time data sync during migrations, and can keep building features instead of wiring brittle glue code between schema management and their web sync engine.
Bug Fixes, Limitations, and the Road to Production Use
Beyond the schema change hook, Zero 1.0 includes several bug fixes in the core sync engine. The release addresses corrupted litestream restores, error handling when change data capture is unhealthy, an IPC_CHANNEL_CLOSED race condition during shutdown, orphaned subscriber situations, and issues with time and timetz SQL generation. Together these fixes target failure modes that matter in long-running services. At the same time, Zero still carries some limits. Reviews from Marmelab note that only Postgres is supported, Postgres views are not synced, some column types such as array are unsupported, and the client API cannot react to errors or rejected updates. Critics on Lobsters have also highlighted a 718 KB uncompressed (232 KB gzipped) client bundle and the absence of server-side rendering, which remains on the roadmap. Teams need to weigh these trade-offs against Zero’s developer experience and sync guarantees.
What Zero 1.0 Changes for Real-Time Web Developers
Zero 1.0 arrives in a market crowded with tools like ElectricSQL, InstantDB, PowerSync, and Convex, all trying to make real-time data sync less painful. Rocicorp’s angle is to focus on a Postgres-centric, general-purpose sync engine that can sit in front of an existing database. For developers, the stable API and Supabase-friendly schema change hook mean they can plan around a predictable web sync engine rather than maintaining bespoke synchronization layers. Upgrading from recent versions is straightforward, using npm install @rocicorp/zero@1.0, though teams on older builds still need to review earlier release notes and follow schema deployment guidance to avoid downtime during migrations. With production readiness concerns easing, Zero’s main impact is that front-end teams can use real-time data sync as a standard tool in their stack instead of an experimental add-on that might break with each update.






