Embedded Convex runtime with offline-first sync for local-first applications.
- Standard Convex client API - Run against an embedded runtime without rewriting your app around a custom client surface.
- Offline-first sync - Keep working locally, persist data in-browser, and reconcile with a remote Convex deployment when connectivity returns.
- CRDT field types - Model collaborative state with Yjs-backed field
primitives such as
register,prose,counter, andset. - Cross-platform runtime - Use the package across browser, React, Expo, Node.js, and Convex server entry points.
- Cross-tab persistence - Share local state, session updates, and write notifications across tabs that use the same database name.
- Optional remote routing - Choose which functions stay local and which ones execute against the authoritative remote backend.
| Section | Description |
|---|---|
| Getting Started | Install the package, register the component, and wire up your first client. |
| Guides | Browser integration, embedded tables, auth, remote configuration, and cross-tab sync. |
| API Reference | Browser, client, server, CRDT, and test entry points. |
| Concepts | Architecture, persistence, offline reconciliation, embedded runtime internals, and search. |
| Reference | Configuration, migration notes, troubleshooting, and error handling. |
Throughput and latency are measured end-to-end through the real runtime (real JS compute, real indexed SQLite, real Yjs merge) at offline-app scale (~10k–50k docs). Headline numbers on an Apple M4 / Node 24:
| Path | Throughput | p50 |
|---|---|---|
| CRDT offline reconcile | ~22k doc-merges/sec | ~9 ms / 200-doc batch |
Component recordUpdate (fresh) |
25,428 ops/sec | 0.039 ms |
executeLocal indexed paginate (take 20) |
704 ops/sec | 1.42 ms |
executeLocal mutation insert (full write path) |
7,175 ops/sec | 0.14 ms |
| Blob get (64 KB) | 41,222 ops/sec | 0.024 ms |
Full methodology, per-suite results, and the offline rationale are in
benchmarks/README.md. Run with
vp run --filter benchmarks bench.
vp install
vp check
vp test| Directory | Description |
|---|---|
packages/convex-embedded/ |
Published package with browser, server, Expo, Node, React, CRDT, and test entry points. |
convex/ |
Example Convex app modules used by the repo, tests, and demos. |
docs/ |
Documentation site published at embedded.estifanos.com. |
demos/ |
Svelte and Expo demos that exercise the embedded runtime. |
tests/ |
Vitest suites for package behavior, runtime behavior, docs invariants, and integration coverage. |
MIT