Sign in

Matthew Weidner

@mweidner.bsky.social
135 followers 66 following 18 posts

Collaborative software at Common Curriculum / CMU I write about CRDTs etc: mattweidner.com

PostsRepliesMedia
Reposted by Matthew Weidner
Martin Kleppmann @martin.kleppmann.com · 28/09/2026
Notion wrote a nice blog post on how they use CRDTs, including our Peritext algorithm for rich text! This must be one of the largest CRDT deployments out there? www.notion.com/en-gb/blog/h...
notion.com
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
312514
Reposted by Matthew Weidner
Martin Kleppmann @martin.kleppmann.com · 29/07/2026
lol thank you IEEE for giving me a good laugh (CC @mweidner.bsky.social)
BibTeX export of one of my papers from IEEE Xplore. The keywords field contains some plausible terms, but also some inexplicably odd ones, including "Dairy products"
3191
Matthew Weidner @mweidner.bsky.social · 30/07/2026
I do live pretty close to a cheese factory...
020
Matthew Weidner @mweidner.bsky.social · 30/03/2026
We know now that the server reconciliation approach does work for text, so long as you assign each character an ID instead of trying to use array indexes: mattweidner.com/2025/05/21/t...
mattweidner.com
Collaborative Text Editing without CRDTs or OT - Matthew Weidner
010
Matthew Weidner @mweidner.bsky.social · 30/03/2026
I learned of this from the first paper on collaborative text editing (dl.acm.org/doi/abs/10.1...), which cites the idea but claims it won't work for text. Instead they introduce Operational Transformation, which led to a lot of academic work but is more complicated.
dl.acm.org
100
Matthew Weidner @mweidner.bsky.social · 30/03/2026
The report is "Computer-Based Real-Time Conferences" by Sunil Sarin and Irene Greif, dspace.mit.edu/handle/1721....
dspace.mit.edu
Computer-based Real-time Conferences
100
Matthew Weidner @mweidner.bsky.social · 30/03/2026
Fun academic find: the core idea of server reconciliation (a general approach to real-time collaboration that's simpler than Operational Transformation or CRDTs) already appears in an MIT tech report from 1985.
111
Matthew Weidner @mweidner.bsky.social · 05/12/2025
More on this simple path to collaborative apps, as an alternative to the Operational Transform / CRDT rabbit hole, in my recent DWeb Seminar talk: docs.google.com/presentation...
docs.google.com
DWeb Seminar Talk
Why is Collaborative Data Hard? (Is it?) Matthew Weidner DWeb Seminar 2025 Internet Archive, SF
071
Matthew Weidner @mweidner.bsky.social · 05/12/2025
For many collaborative apps, though, you can get away with just serializing all users' ops. E.g., apply ops in the order a server receives them. This strategy appears in Replicache and in @tanstack.com DB (taking over from ElectricSQL v0's fancier CRDT-based strategy).
121
Matthew Weidner @mweidner.bsky.social · 05/12/2025
In essence, the authors found that text editing is hard - at least when you address each char by its ever-changing index instead of a fixed ID - but concluded that *collaboration* is hard, requiring partial-order thinking & fancy algorithms. That set the tone for a whole field.
100
Matthew Weidner @mweidner.bsky.social · 05/12/2025
(The paper is "Concurrency control in groupware systems", Ellis & Gibbs 1989. doi.org/10.1145/6754...)
doi.org
Concurrency control in groupware systems | Proceedings of the 1989 ACM SIGMOD international conference on Management of data
100
Matthew Weidner @mweidner.bsky.social · 05/12/2025
From the ~1st collaborative text editing paper: if two users do "delete char @ index 7" concurrently, no serial ordering gives the correct answer. So the authors abandon serializability, leading to OT/CRDTs. But if you rephrase the ops as "delete char @ <per-char id>", both serial orders work!
151
Reposted by Matthew Weidner
Martin Kleppmann @martin.kleppmann.com · 03/10/2025
It took almost two years…! The Fugue paper that @mweidner.bsky.social and I wrote about interleaving in collaborative text editing algorithms was finally accepted by IEEE Transactions on Parallel and Distributed Systems paywalled: ieeexplore.ieee.org/document/111... free: arxiv.org/abs/2305.00583
arxiv.org
The Art of the Fugue: Minimizing Interleaving in Collaborative Text Editing
Most existing algorithms for replicated lists, which are widely used in collaborative text editors, suffer from a problem: when two users concurrently insert text at the same position in the document,...
25611
Matthew Weidner @mweidner.bsky.social · 30/09/2025
I made a guest post on @powersync.com's blog: powersync.com/blog/collabo... It describes a demo we made of collaborative text editing on top of PowerSync's DB sync engine, using character IDs & totally-ordered updates in a DB table (w/o CRDTs).
powersync.com
Collaborative Text Editing Over PowerSync
This blog post describes the resulting demo of collaborative text editing over PowerSync. The demo uses Tiptap as the editor, has basic support for shared cursors and anonymous share links, and includ...
0133
Reposted by Matthew Weidner
Local-First Conf @localfirstconf.com · 12/06/2025
Watch @mweidner.bsky.social talk about collaborative text editing without CRDTs or OT. youtu.be/5CFrpd0sG-g?...
drive.google.com
Matthew Weidner.mp4
Whether your app is local-first or more traditional, collaborative text editing is a tricky problem that requires advanced algorithms. Or does it? In this ta...
0124
Reposted by Matthew Weidner
Local-First Conf @localfirstconf.com · 27/05/2025
"Collaborative text editing without CRDTs or OT" Awesome talk from @mweidner.bsky.social on how you don't need CRDTs to build collaborative text editing.
083
Matthew Weidner @mweidner.bsky.social · 21/05/2025
Together with my last blog post (mattweidner.com/2024/06/04/s...), this should let you build central-server collaborative apps with *no* tricky CRDT or OT algorithms! (Though CRDT ideas are still helpful.)
mattweidner.com
Architectures for Central Server Collaboration - Matthew Weidner
000
Matthew Weidner @mweidner.bsky.social · 21/05/2025
I'll be talking about this approach at Local First Conf next week.
100
Matthew Weidner @mweidner.bsky.social · 21/05/2025
New blog post: "Collaborative Text Editing without CRDTs or OT". It describes what I hope is a simpler and more flexible approach to the hardest part of a collaborative app, text editing. mattweidner.com/2025/05/21/t...
mattweidner.com
Collaborative Text Editing without CRDTs or OT - Matthew Weidner
1122
Matthew Weidner @mweidner.bsky.social · 18/04/2025
I'd be interested to see those if you can find them. I do wonder to what extent rebasing SNAFUs can be "solved" with cleverer mutations, or if you need to fall back on branches / version control for any amount of offline editing.
200
Matthew Weidner @mweidner.bsky.social · 18/04/2025
I heard about Jupyter's prototype collaboration using Yjs back in 2021 - neat that they are still making progress with it!
010
Matthew Weidner @mweidner.bsky.social · 18/04/2025
I look forward to talking about some new ideas from my work at Common Curriculum & CMU!
131
Matthew Weidner @mweidner.bsky.social · 17/04/2025
My most recent blog post (from last summer): Architectures for real-time collaborative apps using a central server. It includes classic CRDT/OT approaches, why those might be overkill, and a classification table for existing apps/tools. mattweidner.com/2024/06/04/s...
Screenshot of classification table from the blog post
291