v0.1-alpha / MIT LICENSE / PROTOCOL FROZEN
[ ENGINE ARCHITECTURE ]

Offline-first sync for PocketBase apps.

Deterministic two-way sync runtime with per-user record sandboxing, atomic field-level diffs, and monotonic sequences that eliminate client NTP clock drift vulnerabilities entirely.

$ npm i @pb-sync/client @pb-sync/adapter-expo
SYNC_TELEMETRY // LIVE BUS
SSE_STREAM_ACTIVE
phone_iphone Node A (Expo / SQLite)
SYNCED
Local Rev: #0482
WAL Cache: 0 queued
swap_vert Engine Bus · Delta Batching
0 PENDING MUTATIONS
dns Node B (PocketBase Server)
AUTH_OK
High-Water Mark: seq: 1,842
Outbox Buffer: Auto-deduping
❯ SYNC_EVENT_ACK: tx_89f02c
0 conflicts
Records: 4,128 Reconciler: 0ms drift
[ SYSTEM GUARANTEES ]

Built for disconnected field operations.

01 // LOCAL-FIRST bolt

Instant write latency.

Mutations resolve instantly inside zero-overhead client storage. Writes never freeze awaiting network round-trips. Offline payloads queue persistently inside an atomic transactional ledger.

✔ WAL journaling via SQLite / IDB
02 // DETERMINISTIC MERGES alt_route

Field-level granularity.

Full-record blind overwrites are strictly rejected. Field hashing partitions changes so orthogonal property edits never collide, and conflicting field values fall back to reproducible server logic.

✔ SHA-256 state-hash reconciliation
03 // ZERO CLOCK DRIFT schedule

Authoritative sequences.

No reliance on unpredictable client NTP timestamps or device clocks. Sync checkpoints utilize central server sequence numbers, eliminating time-warp anomalies and ghost revisions forever.

✔ Strict monotonic sequence vector
[ RUNTIME ADAPTERS ]

Supported Target Environments

TIER 1 CLIENT ENGINES & SERVERS
Platform / Engine
Local Storage Engine
Transport
phone_iphone Expo / React Native
OP-SQLite / expo-sqlite
SSE + Replay Chunking
language SvelteKit / React Web
IndexedDB (Wasm SQLite optional)
Fetch + EventSource API
dns PocketBase Go / JS Hooks
Native SQLite Database
Sync Endpoint Plugin
READY TO PILOT?

Plug into your existing PocketBase instance in 5 minutes.

No schema rewrites needed. Register our single PocketBase Go or JS plugin, add client hooks, and run your queries entirely local-first.