Local-First, sync engines, CRDTs

SQLRooms: Local-First Analytics with DuckDB, Collaborative Canvas, and Loro CRDT Sync

<p><a href="https://sqlrooms.org">SQLRooms</a> (<a href="https://github.com/sqlrooms/sqlrooms">GitHub</a>) is an open-source React framework for building local-first data analytics applications powered by <a href="https://duckdb.org">DuckDB</a>. SQLRooms can run entirely in the browser using DuckDB-WASM, or connect to a shared session-backend running native DuckDB for larger datasets—in both cases, enabling privacy-preserving analytics where data stays under user control.</p> <p>In this talk, I'll present SQLRooms' local-first architecture and our ongoing work on real-time collaboration using <a href="https://loro.dev">Loro CRDT</a>. We're building a Canvas module with SQL query cells and <a href="https://vega.github.io/vega-lite/">Vega-Lite</a> visualization cells, a Notebooks module, and an underlying DAG (directed acyclic graph) engine that tracks dependencies between cells—automatically re-executing downstream cells when data changes. These modules will support collaborative editing via <code>@sqlrooms/crdt</code>, with sync enabled through WebSockets using <a href="https://pypi.org/project/sqlrooms-duckdb-server/">sqlrooms-duckdb-server</a>.</p> <p>A key insight for analytics apps: DuckDB serves as a read-only query engine—the underlying data doesn't need to be synced. Only the UI state requires CRDT synchronization: queries, notebooks, canvas layouts, annotations, and comments. This CRDT state can be persisted both in a shared session-backend DuckDB and on local machines for offline access.</p> <p>For session-backend deployments, sqlrooms-duckdb-server provides a shared DuckDB instance where all connected clients query the same data—useful for large datasets or when consistent results matter. This can be deployed with e.g. <a href="https://developers.cloudflare.com/containers/">Cloudflare Containers</a> for on-demand, per-session instances.</p> <p>I'll discuss our choice of Loro over Yjs and how separating data (read-only DuckDB) from collaborative state (CRDT) simplifies the sync architecture while enabling privacy-preserving collaborative analytics.</p>

Weitere Infos

Live Stream https://live.fosdem.org/watch/k3201
Format devroom
Sprache Englisch

Weitere Sessions

01.02.26
Local-First, sync engines, CRDTs
K.3.201
<p>Welcome to the "Local First, sync engines and CRDTs devroom", first edition this year at FOSDEM'26. We are excited to propose you a full day of amazing talks ranging from CRDT libraries and frameworks, to local first projects using them, and including academic research, UX design, sync protocols and engines.</p> <p>We believe Local First software is the future of app development. But what is Local First software? In this short introduction we will touch upon the general concepts and describe ...
01.02.26
Local-First, sync engines, CRDTs
Giordano Ricci
K.3.201
<p>CRDTs are an exciting primitive for distributed state. In local-first apps, synced CRDTs can be framed as a natural extension to reactive local state, allowing developers to build eventually consistent multi-device and multi-user apps, with business logic living completely on the client, only requiring generic syncing infrastructure.</p> <p>A key feature that traditional backends solve remains a challenge, though: how do permissions work in this world? In addition to being a ...
01.02.26
Local-First, sync engines, CRDTs
Bartosz Sypytkowski
K.3.201
<p>Yjs is one of the oldest and most widely used libraries that enhance web editors by allowing multiple users collaborate over documents in real time, also without requiring continuous network connection. Evernote and Jupyter Notebooks are among many of its prominent users.</p> <p>During this presentation we'll address some of the common pitfalls that new developers may encounter when working with Yjs library, what architectural foundations are causing them to happen and what can we do to ...
01.02.26
Local-First, sync engines, CRDTs
M Palanikannan
K.3.201
<p><a href="https://github.com/makeplane/plane">Plane</a> is an open source project management tool used by thousands of teams. A year ago, we shipped Wiki — a collaborative documentation system built on Yjs with real-time editing, offline support, and version history.</p> <p>Yjs is remarkable. Kevin Jahns and the community have built something incredible — real-time sync, conflict resolution, offline editing, all handled elegantly. But integrating a powerful library is just the start. This ...
01.02.26
Local-First, sync engines, CRDTs
K.3.201
<p>Automerge is a mature library for building local first applications by enabling version control for structured data. The strategy is to capture all edits to data at a very fine grain (e.g. per keystroke when editing text) and then present a good API for managing concurrently edited versions of this data. </p> <p>The version control approach to collaboration makes working concurrently feasible and makes servers fungible - it increases user autonomy, but it introduces problems as you can't rely ...
01.02.26
Local-First, sync engines, CRDTs
K.3.201
<p>NextGraph is a protocol, a framework, and a platform that supports easy development of Local-First, decentralized, secure and private apps.</p> <p>By combining the best of the local first world (Yjs, Automerge CRDT libraries), a graph database, DID (decentralized identifiers) for users and documents, and end-to-end encryption plus encryption at rest, we provide an SDK that offers all the requirements of portability, interoperability and security needed today for building a true alternative to ...
01.02.26
Local-First, sync engines, CRDTs
Kevin De Porre
K.3.201
<p>Building fast, resilient, and collaborative applications increasingly demands more than reactive UI frameworks and client-side state management. The next generation brings reactivity to the data layer itself—letting applications stay in sync with the backend automatically through a sync-engine architecture.</p> <p>This talk explores how <a href="https://tanstack.com/db">TanStack DB</a> provides a practical path toward such architectures without requiring a rewrite or commitment to a ...