This is a library providing the client-side editor component, with a bunch of modules (UI, collaboration), and a well-documented API through which to connect it to surrounding code.
It is written in ES6. The persistent data structures are not very involved, just objects that never get mutated after their initial construction.
This pattern matching of user's intentions and using DOM diffing to find out what actually happened feels right to me, especially using persistent data structures. Handling parts of the document as a tree and others as a list seems like decision that could probably make development much easier as you'd know, I imagine. I have been wondering about how to do structured inline element annotations, and lists inside block level elements certainly looks it could work.
Also, this relates to what LightTable folk's talked about in IDE as a value [1].
I'm definitely going to back this. That said, I'd like to know more about what is actually going to (hopefully) be open sourced.
Is this a stand alone app with plugins, a collection of components, or a library to build your own editor?
Is it written in purely JavaScript version 5, 6, or something else?
What about the persistent data structure implementation?
How are user intent patterns modeled, ie. what would it entail to build your own?
Have you thought about intermixing document tree with editors for other types of content, like tables and media?
[1] http://www.chris-granger.com/2013/01/24/the-ide-as-data/