







Collaboration on rich text is hard to model with plain-text approaches. We review the challenges and how to construct a CRDT for rich text.
Proposal for a CRDTs on At Proto Working Group
There’s been some work done on using the PDS / At Proto as a to store and transmit CRDT operations. There is a general feeling that if we can figure out the right approach for this it will enable a number of new experiences on At Proto, specifically a collaborative editing approach that is localfirst. We hope that as a working group we can come up with some of the following: A set of best practices and recommendations that apps can adopt to enable collaborative, localfirst, editing via crdts ...

How CRDTs make multiplayer text editing part of Zed's DNA
From the Zed Blog: A detailed exploration of Zed's eventually-consistent text representation.

CRDT Papers • Conflict-free Replicated Data Types
Resources and community around CRDT technology — papers, blog posts, code and more.
Exploring CRDT Lexicons
I’ve (alongside many others I’m sure) been working on CRDT work with atproto, and I think we’ll need to come up with some standard for how to represent CRDT data as lexicons. @chris.pardy.family has written a leaflet exploring what such a record could look like and is looking for feedback and thoughts: CRDT's on ATProto I think it’s a good start. It doesn’t tie us to any particular CRDT, though it doesn’t guarantee interop between different CRDT types, which seems fine to me. I’m thinking may...

About CRDTs • Conflict-free Replicated Data Types
Resources and community around CRDT technology — papers, blog posts, code and more.
How Notion handles concurrent editing with CRDTs
Building a CRDT-based rich-text system that merges concurrent edits across Notion blocks—without losing anyone’s work

Paul Copplestone - e/postgres on Twitter / X
we've released a CRDT extension for Postgres (experimental and open source)why? A CRDT is a special data type used for collaboration - think of a Google Doc. The changes are merged even as people are typing simultaneouslythese CRDTs are then serialized on a server and then… pic.twitter.com/WJDJlK733D— Paul Copplestone - e/postgres (@kiwicopple) November 21, 2025

An Interactive Intro to CRDTs | jakelazaroff.com
CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.

Block elements in rich text CRDT (for Peritext 2) | Notion
Need to support features:

Synchronized editing: the future of collaborative writing
A growing suite of tools allows teams of researchers to work collectively to edit scientific documents.

The CRDT Dictionary: A Field Guide to Conflict-Free Replicated Data Types - Ian Duncan
A comprehensive guide to CRDTs and their tradeoffs, from counters to sequences. Written in the spirit of the Typeclassopedia, exploring how different CRDTs solve the distributed consensus puzzle.
Maggie Appleton on Twitter / X
I've always wanted my own WYSIWYG editor for my website, and now I have one! Works locally, saves changes to MDX.But the better part is building semantic writing tools on top. Colour-coded sentence classification, flagging cliches, repetition, and claims that need citations pic.twitter.com/lvOMTZ4DUB— Maggie Appleton (@Mappletons) September 28, 2026
Conflict-Free Replicated Data Types (CRDTs)
How to implement a web-based rich text editor in 2023?
Since 2011 I’ve been spending a great junk of my time taming web browsers to behave correctly and predictably when editing rich text. If you’ve ever tried to include a custom rich text editor in your web application, you know it’s a rather difficult problem to solve. I’d even predict that you’ll mos…

Lies I was Told About Collaborative Editing, Part 2: Why we don't use Yjs / Moment devlog
In part 1 of this series, we found that users generally view the most popular collaborative text editing algorithms (including the most popular library, Yjs) as silently corrupting their documents when the algorithms resolve direct editing conflicts. We argued that, while this is potentially ok for live collaborative editing (since presence cursors help users to avoid direct editing conflicts), this property makes them generally wholly inappropriate for the offline case, as users will have no ability to avoid such conflicts.
