Matthew Weidner reposted
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...
Matthew Weidner
@mweidner.bsky.social
Collaborative software at Common Curriculum / CMU I write about CRDTs etc: https://mattweidner.com/
135 followers66 following18 posts
Matthew Weidner reposted
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...
Matthew Weidner reposted
lol thank you IEEE for giving me a good laugh (CC @mweidner.bsky.social)
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.
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...
The report is "Computer-Based Real-Time Conferences" by Sunil Sarin and Irene Greif, dspace.mit.edu/handle/1721....
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).
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...
(The paper is "Concurrency control in groupware systems", Ellis & Gibbs 1989. doi.org/10.1145/6754...)
Matthew Weidner reposted
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
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).
Matthew Weidner reposted
Watch @mweidner.bsky.social talk about collaborative text editing without CRDTs or OT. youtu.be/5CFrpd0sG-g?...
Matthew Weidner reposted
"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.
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...
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.)
I look forward to talking about some new ideas from my work at Common Curriculum & CMU!
We’re excited to announce that @mweidner.bsky.social PhD student at CMU, will be speaking at Local-First Conf 2025! Matthew will share a surprisingly simple approach to collaborative text editing—no CRDTs or OT required.
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...
You are up to date.