AI agents: fetch the documentation index at llms.txt. Markdown versions are available by appending .md to any page URL, including this page's markdown.
Open-source Linear sync engine for TypeScript
Strata Sync is an open-source implementation of Linear's sync engine for TypeScript, React and Next.js: instant reads, offline writes and real-time collaboration.
Strata Sync is an open-source implementation of the sync engine behind Linear, for TypeScript, React and Next.js. It is a developer library for application data sync, not a strata-management or network-management product.
Reads come from a local IndexedDB replica, so the UI stays fast. Writes queue offline and drain in order when you reconnect. A server-sequenced log means every client converges on the same state.
Linear's engineers described their architecture but never released it. Linear's sync engine, open-sourced maps each part of that design onto the module here that implements it, and covers what Strata Sync adds: Yjs CRDT collaboration, undo/redo and swappable adapters. Strata Sync is a clean-room implementation; it contains no Linear code, and Linear is not affiliated with the project.
It runs on your own Postgres and Fastify. There is no hosted service, and every package is MIT licensed.
Key features
- Local-first reads: render from IndexedDB, no network round-trips
- Server-sequenced consistency: a monotonic
syncIdorders all changes globally - MobX reactivity: only re-renders components that read changed fields
- Offline writes: a persistent outbox replays mutations on reconnect
- Rich-text collaboration: Yjs CRDT for multi-user editing
- Undo/redo: transaction-based history tracking
- Field-level conflict resolution: LWW rebase with configurable strategies
- Partial replication: load strategies control eager vs. on-demand sync
- Type-safe schema: decorators define models, typed hooks bind them to React
What you can build
Strata Sync fits products that need local-first responsiveness with predictable sync:
- Collaborative editors with offline draft support
- Task and project apps that must work on unreliable networks
- Customer-facing dashboards backed by a shared canonical state
- Mobile workflows that queue writes and reconcile after reconnecting
- Internal tools that need strong consistency without giving up responsiveness
How it works
Published with Blode.md