CRDTs, offline-first, editors

Offline First

Ink & Switch

Local-first software: You own your data, in spite of the cloud

Slow Software

Capstone: A tablet for thinking

Pushpin: Towards Production-Quality Peer-to-Peer Collaboration

Computer latency: 1977-2017

automerge/automerge: A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.

automerge/automerge-rs: Rust implementation of automerge

automerge/hypermerge: Build p2p collaborative applications without any server infrastructure in Node.js

automerge/pushpin: A collaborative corkboard app

Yjs Shared Editing

Drawing Example - Yjs Community

yjs/yjs: Shared data types for building collaborative software

y-crdt/y-crdt: Rust port of Yjs


Introduction to SyncedStore | SyncedStore - Javascript CRDT based real-time sync

YousefED/Matrix-CRDT: Use Matrix as a backend for local-first applications with the Matrix-CRDT Yjs provider.

devture/matrix-corporal: Matrix Corporal: reconciliator and gateway for a managed Matrix server

Matrix-CRDT Rich Text collaboration demo


Headless WYSIWYG Text Editor – Tiptap Editor

Why DAOs Change Everything | Revue

In Progress… (accepting comments) - Google Docs

Muse — your tool for thought

Conflict-Free Replicated Data Types (CRDT) | Hacker News

About CRDTs • Conflict-free Replicated Data Types

josephg/diamond-types: The world’s fastest CRDT. WIP.

BlockSuite | The Block-Based Collaborative Framework

toeverything/blocksuite: 🍬 BlockSuite is the open-source collaborative editor project behind AFFiNE.

Evolu - React Hooks for Local-First Apps

evoluhq/evolu: React Hooks library for local-first apps with end-to-end encrypted backup and sync using SQLite and CRDT - Device Sync & Collaboration Simplified

A Gentle Introduction to CRDTs –

vlcn-io/cr-sqlite: Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite

Convergence - ACM Queue

Do LWW Registers Need Vector Clocks or Causal Graphs? 💭 - Tantamanlands

Lamport Clock 🕥 - Tantamanlands

Roshi: a CRDT system for timestamped events | SoundCloud Backstage Blog

(138) [LIVE 2021] Inkbase: Programmable Ink - YouTube

(15) “Programmable Ink” by Szymon Kaliski (Strange Loop 2022) - YouTube

(138) [LIVE 2021] Inkbase: Programmable Ink - YouTube

streamich/json-joy: json-joy — JSON CRDT, JSON CRDT Patch, JSON Patch, JSON Predicate, JSON Patch Extended, JSON Patch+ OT, MessagePack codec, JSON-Rx, JSON-RPC 2.0, JSON Pointer, Reactive-RPC, random JSON generator, JSON Brand, JSON Expression, JSON Size, JSON Type, JSON Schema, JSON deep equality, JSON Binary, JSON clone, JSON utilities

kig/rope.js: Rope data structure


y-crdt/ypy: Python bindings to y-crdt