<?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/bram-cohen"&gt;bram-cohen&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vcs"&gt;vcs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crdt"&gt;crdt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pyodide"&gt;pyodide&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="bram-cohen"/><category term="vcs"/><category term="crdt"/><category term="pyodide"/></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 &lt;code&gt;~/Library/Group\ Containers/group.com.apple.notes/NoteStore.sqlite&lt;/code&gt; - 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 &lt;code&gt;ZICNOTEDATA.ZDATA&lt;/code&gt; 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>