The Vibeary — round-up
Best local-first and sync engines
Local-first is the architecture behind every app that feels instant: writes land in a local store immediately, sync happens in the background, and conflicts resolve without a spinner. It is also the hardest thing on this shelf to retrofit, so it is worth understanding the options before you commit. The projects here span CRDT libraries, sync engines that pair with Postgres, embedded client databases and full local-first frameworks — each making a different trade between control and how much of the problem it solves for you.
What earned a place
- Real conflict resolution, not last-write-wins by accident
- Offline behaviour that survives a long disconnection
- Clear story for auth and per-user data access
- Production usage or serious documentation behind it
24 picks from the library
- 01
Basejump
Open-source Supabase starter providing teams, accounts, roles, billing hooks and row-level-security policies as ready-made SQL.
Why it made the list: The multi-tenant RLS schema everyone gets wrong, written correctly and given away.
Database toolingMITBasejump (@usebasejump)usebasejump.com
- 02
Collabs
Library of composable CRDTs from CMU research letting you build custom collaborative data types instead of using a fixed document model.
Why it made the list: Academic-grade composable CRDTs with real docs. Nobody outside the research thread knows it.
Local-first & syncApache-2.0Matthew Weidner (@mweidner037)collabs.readthedocs.io
- 03
cr-sqlite
SQLite extension that turns ordinary tables into conflict-free replicated ones, letting two databases merge changes without a central server.
Why it made the list: Multi-writer merge at the SQLite layer, so your existing SQL schema becomes syncable.
Local-first & syncopen-sourceMatt Wonlaw (@tantaman)github.com

- 04
Diamond Types
Rust CRDT implementation for collaborative plain-text editing optimised for extremely fast merging of long editing histories.
Why it made the list: The benchmark everyone else's text CRDT gets measured against, from ShareJS's author.
Local-first & syncopen-sourceJoseph Gentle (@josephg)github.com

- 05
Drizzle Lab
Toolkit around Drizzle ORM providing a schema visualizer, local playground and VS Code extension for exploring relations and migrations.
Why it made the list: The ER-diagram view Drizzle Studio never shipped, built by one person.
Database toolingopen-sourceRaphaël Moreau (@rphlmr)github.com

- 06
Evolu
Local-first framework built on SQLite with end-to-end encryption, typed schemas and CRDT sync where the server never sees plaintext.
Why it made the list: The only mainstream local-first stack where the sync server is fully zero-knowledge.
Local-first & syncMITDaniel Steigerwald (@steida)evolu.dev
- 07
Fireproof
Embeddable database that runs in the browser with verifiable, content-addressed storage and pluggable cloud sync backends.
Why it made the list: Immutable, cryptographically verifiable history in a database you can npm install.
Local-first & syncopen-sourceFireproof Storage (@fireproof-storage)use-fireproof.com

- 08
Hocuspocus
Extensible WebSocket backend for Yjs with pluggable persistence, authentication hooks, webhooks and horizontal scaling via Redis.
Why it made the list: The Tiptap team's production collaboration server, usable without Tiptap.
Local-first & syncMITueberdosis (@ueberdosis)github.com

- 09
InstantDB
Realtime relational database with an instant client SDK, offline support, permissions and optimistic updates on top of a Postgres backend.
Why it made the list: Firebase ergonomics with real relations and a genuinely open-source server.
Local-first & syncopen-sourceInstantDB (@instantdb)instantdb.com

- 10
Jazz
Framework where collaborative, permissioned data structures sync themselves, with built-in auth, file handling and end-to-end encryption.
Why it made the list: Removes the backend entirely for multiplayer apps; permissions live in the data itself.
Local-first & syncMITGarden Computing (@gardencmp)jazz.tools
- 11
json-joy
High-performance JSON CRDT, JSON Patch, JSON Pointer and binary codec toolkit for building collaborative document infrastructure.
Why it made the list: Benchmark-topping CRDT internals from the author of react-use, hidden in a grab-bag repo.
Local-first & syncApache-2.0Vadim Dalecky (@streamich)github.com

- 12
Kanel
Reads a live PostgreSQL schema and generates TypeScript interfaces, branded ID types and Zod schemas for every table and view.
Why it made the list: Database-first typing without an ORM. Branded key types stop cross-table ID mixups.
Database toolingMITKristian Dupont (@kristiandupont)github.com

- 13
Legend-State
Fine-grained reactive state library with automatic persistence and sync plugins, designed to re-render only the components that changed.
Why it made the list: Signals-level render performance in React plus built-in local persistence and sync.
Local-first & syncMITJay Meistrich (@jmeistrich)github.com

- 14
LiveStore
Event-sourced local-first data layer that keeps an in-memory SQLite read model derived from an append-only log of events.
Why it made the list: Event sourcing on the client, so time-travel debugging and undo come free.
Local-first & syncopen-sourceJohannes Schickling (@schickling)livestore.dev

- 15
Loro
Rust CRDT library with WebAssembly bindings supporting rich text, movable tree structures and full version history for collaborative editing.
Why it made the list: Movable-tree CRDTs and time travel that Yjs does not give you out of the box.
Local-first & syncMITLoro (@loro-dev)loro.dev

- 16
pgflow
Postgres-native workflow engine with an Edge Worker that runs durable, typed background job DAGs entirely inside a Supabase project.
Why it made the list: Durable job orchestration without adding Redis, Temporal or a second runtime.
Database toolingopen-sourcepgflowpgflow.dev

- 17
PGlite
Postgres compiled to WebAssembly as a small embeddable library that runs a real database in the browser, Node or an edge worker.
Why it made the list: Real Postgres in a browser tab in 3MB. Makes offline demos and tests trivial.
Database toolingApache-2.0ElectricSQL (@electric-sql)github.com

- 18
slotstream
Streams MoE experts from SSD so a 125B 4-bit Qwen can run on Macs with far less RAM, via MLX/Swift with an Ollama-compatible API.
Why it made the list: Makes huge local models practical on ordinary Mac memory budgets.
Local-first & syncMITCarlos Galarza (@carloslfu)github.com

- 19
Supabase Automated Self-Host
Script and compose setup that provisions a hardened self-hosted Supabase stack with Caddy, TLS and authentication in one command.
Why it made the list: Turns the officially painful self-host path into a single reproducible command.
Database toolingMITInder Singh (@singh-inder)github.com

- 20
Supabase Cache Helpers
Set of React Query and SWR hooks that derive cache keys from Supabase queries and keep realtime updates in sync automatically.
Why it made the list: Removes the cache-key boilerplate every Supabase app reinvents badly.
Database toolingMITPhilipp Steinrötter (@psteinroe)github.com

- 21
TanStack DB
Reactive client data layer with differential dataflow collections, typed live queries and optimistic mutations layered over any backend.
Why it made the list: The newest TanStack piece and the least-known: sub-millisecond live queries in the client.
Local-first & syncMITTanner Linsley (@tannerlinsley)tanstack.com

- 22
TinyBase
Reactive in-memory data store with typed schemas, indexes, relationships, persistence adapters and optional CRDT-based synchronization.
Why it made the list: Spreadsheet-shaped local state in a few kilobytes, with astonishing documentation.
Local-first & syncMITJames Pearce (@jamespearce)github.com

- 23
Triplit
Full-stack database with a relational query engine that syncs to clients in realtime, offline support and optimistic updates built in.
Why it made the list: Relational queries with realtime sync in one package, no separate cache layer.
Local-first & syncopen-sourceTriplit (@aspen-cloud)triplit.dev
- 24
TypeSQL
Generates fully typed query functions from raw SQL files by introspecting the database, giving type-safe results without an ORM layer.
Why it made the list: sqlc for the JavaScript world. Write real SQL, still get end-to-end types.
Database toolingMIT@wsportogithub.com

Questions
- Do I need CRDTs for collaboration?
- For free-form text and shared canvases, usually yes. For record-level data, a server-authoritative sync engine is often simpler and sufficient.
- Can I add local-first later?
- Rarely without a rewrite of the data layer. Decide early if instant, offline-capable interaction is a product requirement.