How Notion handles concurrent editing with CRDTs

2 pointsposted 6 hours ago
by austinl

3 Comments

andric

an hour ago

The way they’ve handled splits in text using a “text slice” and block mapping is truly novel (although the way they’ve introduced search labels feels a little hacky).

> in a ProseMirror editor using Yjs, splits are modeled as a deletion in the first block and an insertion in the second. A concurrent edit may therefore remain in the original node, whereas our approach preserves its intended position across the split.

I wonder if something inspired by this design could make its way into the new Yjs version and y-prosemirror rewrite.

It’s always been a big limitation of y-prosemirror that splits are handled as a deletion and insertion.

rvz

6 hours ago

Posted in the future?

> Published September 19, 2026 in Tech

andric

an hour ago

It’s September 19 in many parts of the world.