So this happened yesterday. The turnout of 11 people exceeded all expectations. Discussion was lively and interesting. We started with an introduction round in which people described the reasons they are interesting in the system and their use cases. Notable use cases were:
-
Scientific writing, in which you need elements like citations and have some strict requirements that documents must fulfill.
-
Legal writing, which has some of the same requirements.
-
A suggestion feature, where people can make edits and present them as suggested modifications (shown as highlighted new text and strikethrough removed text) to another user who then actually approves/discards them.
-
Producing predictable, clean HTML, without having users deal with Markdown or HTML directly.
After the introductions, Stephan did his demos. The first one runs ProseMirror on IPFS, saving documents itself to IPFS as well. So this is an application running in the peer-to-peer web, storing data there, and it will continue to work forever and ever as long as people keep using it an IPFS survives. Well, it’s just a little demo, so it probably won’t actually work forever, but the concept is mind-blowing. (Then we had a long derail about IPFS. If you don’t know it yet, search around, it’s a neat idea.).
The second demo had two ProseMirror editors collaborating over WebRTC (browser peer-to-peer technology). It just worked, again without central server, which is pretty cool.
Then I tried to explain the concept of document schemas, at which I initially did a pretty poor job but I think that after a bunch of questions I got the point across. To wit, document schemas describe the node types and attributes that are allowed in a document, and the way they relate to each other (what kind of nodes each node can contain, for example). You’ll typically define a single one (or simply import an existing one) and use that for all documents in a given domain that you allow users to edit.
The question of versioning these was brought up. We discussed a whole bunch of ideas, but in the end my takeaway was that we best treat this as external to the core system. People can define and publish schemas as document formats, with a name and a version, and sites that want to explicitly version documents can store the format name and version alongside their documents.
Finally, I pleaded again if anyone knew of any literature that attacks the problem of formalizing tree-based document manipulation, and the way a WYSIWYG interface can expose that in a predictable, accessible way. But nothing came to mind, and it was late, so we finished the meeting there.
In any case, the summit was a success, and I expect I’ll try to organize something similar again in the future. Thank you all who showed up!
If I forgot something significant, feel free to add replies with further notes.