Is it possible to implement backend logic of the editor in some other technology?


I was able to successfully implement basic collaborative editing environment using node.js backend following this. But I am writing my application in Elixir/Phoenix. So I wanted to ask, if it’s possible to implement the backend of collaborative editing in some other platform and how hard could it be. Or should I leave the implementation in node.js as it is and authorise every-time an edit comes to the node.js backend by talking to my real backend through may be websockets?


You can implement a ‘dumb’ backend that just relays editing steps between clients in any language, but if you want to keep a representation of the edited document on the server and check whether the steps the clients produce make sense, you will need to run JavaScript. Porting the whole document model and transform module would be a rather big and error-prone undertaking.

Thanks for the clarification.

One advantage of having several implementations of a document standard is that one is more likely to find bugs with individual programs and fundamental flaws of document structures.

Some of us discussed this earlier, and at some time we may be interested in creating a creating a Python backend that is able to understand the document structure, steps, etc. . But this will be some time after PM 1.0 has been released, once we are fairly certain that there won’t be more frequent breaking changes (before version 2.0).