<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: crdt</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/crdt.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2026-03-22T18:57:32+00:00</updated><author><name>Simon Willison</name></author><entry><title>Merge State Visualizer</title><link href="https://simonwillison.net/2026/Mar/22/manyana/#atom-tag" rel="alternate"/><published>2026-03-22T18:57:32+00:00</published><updated>2026-03-22T18:57:32+00:00</updated><id>https://simonwillison.net/2026/Mar/22/manyana/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;strong&gt;Tool:&lt;/strong&gt; &lt;a href="https://tools.simonwillison.net/manyana"&gt;Merge State Visualizer&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;Bram Cohen wrote about his &lt;a href="https://bramcohen.com/p/manyana"&gt;coherent vision for the future of version control&lt;/a&gt; using CRDTs, illustrated by &lt;a href="https://github.com/bramcohen/manyana/blob/main/manyana.py"&gt;470 lines of Python&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I fed that Python (minus comments) into Claude and asked for &lt;a href="https://claude.ai/share/8ce777cd-c7c3-4656-a45e-acbf66bf994b"&gt;an explanation&lt;/a&gt;, then had it use Pyodide to build me an interactive UI for seeing how the algorithms work.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/vcs"&gt;vcs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pyodide"&gt;pyodide&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bram-cohen"&gt;bram-cohen&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="vcs"/><category term="pyodide"/><category term="bram-cohen"/><category term="crdt"/></entry><entry><title>CRDT: Text Buffer</title><link href="https://simonwillison.net/2024/May/20/crdt-text-buffer/#atom-tag" rel="alternate"/><published>2024-05-20T21:19:07+00:00</published><updated>2024-05-20T21:19:07+00:00</updated><id>https://simonwillison.net/2024/May/20/crdt-text-buffer/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://madebyevan.com/algos/crdt-text-buffer/"&gt;CRDT: Text Buffer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Delightfully short and clear explanation of the CRDT approach to collaborative text editing by Evan Wallace (of Figma and esbuild fame), including a neat interactive demonstration of how the algorithm works even when the network connection between peers is temporarily paused.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://lobste.rs/s/42dxsn/crdt_text_buffer"&gt;Lobste.rs&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/explorables"&gt;explorables&lt;/a&gt;&lt;/p&gt;



</summary><category term="crdt"/><category term="explorables"/></entry><entry><title>Making CRDTs 98% more efficient</title><link href="https://simonwillison.net/2023/Oct/17/making-crdts-98-more-efficient/#atom-tag" rel="alternate"/><published>2023-10-17T17:15:15+00:00</published><updated>2023-10-17T17:15:15+00:00</updated><id>https://simonwillison.net/2023/Oct/17/making-crdts-98-more-efficient/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://jakelazaroff.com/words/making-crdts-98-percent-more-efficient/"&gt;Making CRDTs 98% more efficient&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Outstanding piece of explanatory writing by Jake Lazaroff showing how he reduced the transmitted state of his pixel art CRDT implementation from 643KB to 15KB using a progression of tricks, each of which is meticulously explained and accompanied by an interactive demo.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=37915934"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;&lt;/p&gt;



</summary><category term="crdt"/></entry><entry><title>An Interactive Intro to CRDTs</title><link href="https://simonwillison.net/2023/Oct/4/an-interactive-intro-to-crdts/#atom-tag" rel="alternate"/><published>2023-10-04T15:10:52+00:00</published><updated>2023-10-04T15:10:52+00:00</updated><id>https://simonwillison.net/2023/Oct/4/an-interactive-intro-to-crdts/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://jakelazaroff.com/words/an-interactive-intro-to-crdts/"&gt;An Interactive Intro to CRDTs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Superb interactive essay by Jake Lazaroff, providing a very clear explanation of how the fundamental mechanisms behind CRDTs (Conflict-free Replicated Data Types) work. The interactive explanatory demos are very neatly designed and a lot of fun to play with.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=37764581"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/explorables"&gt;explorables&lt;/a&gt;&lt;/p&gt;



</summary><category term="crdt"/><category term="explorables"/></entry><entry><title>Building a BFT JSON CRDT</title><link href="https://simonwillison.net/2022/Nov/21/building-a-bft-json-crdt/#atom-tag" rel="alternate"/><published>2022-11-21T19:56:50+00:00</published><updated>2022-11-21T19:56:50+00:00</updated><id>https://simonwillison.net/2022/Nov/21/building-a-bft-json-crdt/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://jzhao.xyz/posts/bft-json-crdt/"&gt;Building a BFT JSON CRDT&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jacky Zhao describes their project to build a CRDT library for JSON data in Rust, and includes a thorough explanation of what CRDTs are and how they work. “I write this blog post mostly as a note to my past self, distilling a lot of what I’ve learned since into a blog post I wish I had read before going in”—the best kind of blog post!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=33694568"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;&lt;/p&gt;



</summary><category term="json"/><category term="rust"/><category term="crdt"/></entry><entry><title>Notes on Notes.app</title><link href="https://simonwillison.net/2021/Dec/9/notes-on-notesapp/#atom-tag" rel="alternate"/><published>2021-12-09T22:39:26+00:00</published><updated>2021-12-09T22:39:26+00:00</updated><id>https://simonwillison.net/2021/Dec/9/notes-on-notesapp/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/dunhamsteve/notesutils/blob/master/notes.md"&gt;Notes on Notes.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Apple’s Notes app keeps its data in a SQLite database at ~/Library/Group\ Containers/group.com.apple.notes/NoteStore.sqlite—but it’s pretty difficult to extract data from. It turns out the note text is stored as a gzipped protocol buffers object in the ZICNOTEDATA.ZDATA column. Steve Dunham did the hard work of figuring out how it all works—the complexity stems from Apple’s use of CRDT’s to support seamless multiple edits from different devices.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apple"&gt;apple&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sqlite"&gt;sqlite&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dogsheep"&gt;dogsheep&lt;/a&gt;&lt;/p&gt;



</summary><category term="apple"/><category term="sqlite"/><category term="crdt"/><category term="dogsheep"/></entry><entry><title>I was wrong. CRDTs are the future</title><link href="https://simonwillison.net/2020/Sep/28/i-was-wrong-crdts-are-future/#atom-tag" rel="alternate"/><published>2020-09-28T21:03:57+00:00</published><updated>2020-09-28T21:03:57+00:00</updated><id>https://simonwillison.net/2020/Sep/28/i-was-wrong-crdts-are-future/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://josephg.com/blog/crdts-are-the-future/"&gt;I was wrong. CRDTs are the future&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Joseph Gentle has been working on collaborative editors since being a developer on Google Wave back in 2010, later building ShareJS. He’s used Operational Transforms throughout, due to their performance and memory benefits over CRDTs (Conflict-free replicated data types)—but the latest work in that space from  Martin Kleppmann and other researchers has seen him finally switch allegiance to these newer algorithms. As a long-time fan of collaborative editing (ever since the Hydra/SubEthaEdit days) I thoroughly enjoyed this as an update on how things have evolved over the past decade.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=24617542"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/algorithms"&gt;algorithms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/collaboration"&gt;collaboration&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/martin-kleppmann"&gt;martin-kleppmann&lt;/a&gt;&lt;/p&gt;



</summary><category term="algorithms"/><category term="collaboration"/><category term="crdt"/><category term="martin-kleppmann"/></entry><entry><title>The Xi Text Engine CRDT</title><link href="https://simonwillison.net/2017/Oct/13/xi-editor-crdt/#atom-tag" rel="alternate"/><published>2017-10-13T22:32:20+00:00</published><updated>2017-10-13T22:32:20+00:00</updated><id>https://simonwillison.net/2017/Oct/13/xi-editor-crdt/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/google/xi-editor/blob/master/doc/crdt-details.md"&gt;The Xi Text Engine CRDT&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Xi is “a modern editor with a backend written in Rust”—an open-source text editor project from Google built on some very interesting computer science (Conflict-free Replicated Data Types). It’s a native editor with server-backed synchronization as a first-class concept.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://github.com/google/xi-editor"&gt;xi-editor&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/editor"&gt;editor&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;&lt;/p&gt;



</summary><category term="editor"/><category term="google"/><category term="rust"/><category term="crdt"/></entry></feed>