Introduction
Build instant, offline-capable apps that sync with Strata Sync.
A local-first sync engine for TypeScript, React, and Next.js. Reads come from a local store, so the UI stays fast. Writes queue offline and sync when you reconnect. A server-sequenced log ensures every client converges.
Built on the sync architecture Linear described but never open-sourced, extended with Yjs CRDT collaboration, undo/redo, and pluggable adapters.
syncId orders all changes globallyStrata Sync fits products that need local-first responsiveness with predictable sync:
@ClientModel, @Property, @ManyToOne, @OneToMany).SyncProvider.useModel, useQuery) that auto-update.create, update, and delete: applied optimistically, synced in the background.| Feature | Strata Sync | ElectricSQL | Zero | InstantDB | PowerSync |
|---|---|---|---|---|---|
| Local storage | Built-in (IndexedDB) | Bring your own | Built-in (IndexedDB) | Built-in (IndexedDB) | Built-in (SQLite) |
| Conflict resolution | Automatic, field-level | Bring your own | Server decides | Server decides | Customisable |
| Real-time editing | Rich-text with Yjs | Not included | Not included | Not included | Not included |
| Offline writes | Full offline support | Bring your own | Not supported | Basic support | Full offline support |
| Undo / redo | Built-in | Not included | Not included | Not included | Not included |
Install only the packages you need.
| Package | Description |
|---|---|
@stratasync/core | Model runtime, schema decorators, transactions |
@stratasync/client | Client orchestrator, CRUD, query engine, outbox |
@stratasync/react | React hooks and SyncProvider binding |
@stratasync/next | Next.js App Router SSR bootstrap and serialization |
@stratasync/y-doc | Yjs CRDT document and presence management |
@stratasync/mobx | MobX reactivity adapter for observable models |
@stratasync/storage-idb | IndexedDB storage for data, outbox, and metadata |
@stratasync/transport-graphql | GraphQL + WebSocket transport for sync and mutations |