finds.dev← search

// the find

livestorejs/livestore

★ 3,607 · TypeScript · Apache-2.0 · updated Jun 2026

LiveStore is a next-generation state management framework based on reactive SQLite and built-in sync engine.

LiveStore is a local-first state management library that puts SQLite in the client (via WASM) and builds a sync engine on top of event sourcing. It targets apps where offline-first is a real requirement, not an afterthought — think collaborative tools, field apps, or anything where you can't trust the network. If you're reaching for Redux or Zustand for a CRUD app with a backend, this is overkill.

1. The event-sourcing model is the right foundation for sync — you get a natural audit log, replay, and conflict resolution falls out of the architecture instead of being bolted on. 2. Full SQLite query support means you're not fighting a limited ORM or learning a new query API; raw SQL works, and the reactive layer knows which queries to re-run when relevant tables change. 3. Platform adapter coverage is real: web (WASM worker), Expo, Node, Cloudflare Workers — not just listed in the README but with actual code examples for each. 4. DevTools exist and are shipped as a separate artifact, which means you can inspect the event log and query state without printf debugging.

1. Heavy dependency on Effect-ts is baked into the internals — if you're not already bought in on that ecosystem, you'll hit unfamiliar abstractions when anything goes wrong below your layer. 2. Still in beta; the changeset history shows active API churn (webmesh worker boundary changes, sync predicates, format changes) — don't adopt this for anything where a breaking upgrade would be painful. 3. The sync backend story is currently Cloudflare Workers or roll your own; if you want self-hosted sync on a boring VPS, you're building it. 4. WASM SQLite in the browser adds meaningful initial load weight and makes debugging storage issues harder than IndexedDB — the performance docs exist but the tradeoffs aren't free.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →