Tool
Yjs
The CRDT itself. Every page you edit is a Y.Doc.
- Category
- Framework
Yjs
Every page on this site is a Y.Doc. The navigation is one shared map; each page's prose is its own document, loaded when you open it.
One copy, or nothing works
The single most expensive rule in this repo: there must be exactly one copy of Yjs in the dependency graph. Two copies are structurally identical and nominally different, so instanceof starts returning false across the boundary β and the failure is not an error, it is a tree that looks empty and a page that saves into nothing.
That is why every singleton here is a peer dependency rather than a dependency, and why the release tooling has a doctor command whose entire job is to catch a second copy before it reaches a deploy.