Skip to content

robelest/convex-embedded

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

273 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

convex-embedded

Embedded Convex runtime with offline-first sync for local-first applications.

Features

  • 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, and set.
  • 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.

Documentation

embedded.estifanos.com

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.

Performance

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.

Contributing

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.

License

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors