Advertisement · 728 × 90

Posts by Matthew Weidner

Collaborative Text Editing without CRDTs or OT - Matthew Weidner

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...

3 weeks ago 0 0 0 0

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.

3 weeks ago 0 0 1 0
Computer-based Real-time Conferences

The report is "Computer-Based Real-Time Conferences" by Sunil Sarin and Irene Greif, dspace.mit.edu/handle/1721....

3 weeks ago 0 0 1 0
Post image

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.

3 weeks ago 0 0 1 0
Preview
DWeb Seminar Talk Why is Collaborative Data Hard? (Is it?) Matthew Weidner DWeb Seminar 2025 Internet Archive, SF

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...

4 months ago 7 1 0 0

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).

4 months ago 2 1 1 0

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.

4 months ago 0 0 1 0
Concurrency control in groupware systems | Proceedings of the 1989 ACM SIGMOD international conference on Management of data

(The paper is "Concurrency control in groupware systems", Ellis & Gibbs 1989. doi.org/10.1145/6754...)

4 months ago 0 0 1 0
Advertisement
Post image

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!

4 months ago 4 1 1 0
Preview
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,...

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

6 months ago 56 11 2 0
Preview
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...

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).

6 months ago 13 3 0 0
Preview
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...

Watch @mweidner.bsky.social talk about collaborative text editing without CRDTs or OT. youtu.be/5CFrpd0sG-g?...

10 months ago 13 4 0 0
Post image

"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.

10 months ago 8 3 0 0
Architectures for Central Server Collaboration - Matthew Weidner

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.)

11 months ago 0 0 0 0

I'll be talking about this approach at Local First Conf next week.

11 months ago 0 0 1 0
Collaborative Text Editing without CRDTs or OT - Matthew Weidner

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...

11 months ago 12 2 1 0

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.

1 year ago 1 0 2 0

I heard about Jupyter's prototype collaboration using Yjs back in 2021 - neat that they are still making progress with it!

1 year ago 2 0 0 0
Advertisement

I look forward to talking about some new ideas from my work at Common Curriculum & CMU!

1 year ago 3 1 1 0
Screenshot of classification table from the blog post

Screenshot of classification table from the blog post

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...

1 year ago 9 1 2 0