How is this different than something like yjs?

(Author here)

Yjs is an impressive project and probably the most production-ready text CRDT library out there today.

One of our goals was to write down a clear spec for how a rich text CRDT should behave separately from any particular algorithm, as a resource for people working on tools in this space.

In the process we also found some examples where we felt Yjs didn’t maximally preserve intent. One of them is documented in the paper in the section about control characters, and Peritext handles that case differently.

Also, as an implementation note, our prototype sends incremental changes to the Prosemirror editor, whereas I believe yjs sends changes that replace the entire document, which can break the behavior of other plugins [1].

[1]: https://discuss.prosemirror.net/t/offline-peer-to-peer-colla...

Are there plans to make Peritext production-ready like Yjs, or is this more of a sketch for people to build their own collaborative rich text editor integrations?

Eventually we plan to integrate this algorithm into the Text type of Automerge [1], which is a more production-ready CRDT.

[1]: https://github.com/automerge/automerge