| This was one of the project idea I made myself work on during this April. The motivation being, "how hard is it to make a real-time code editor". Long story short, it is far more complicated than I had imagine and to complete in less than a week. Implementing the CRDT itself, the logic itself is challenging and than putting it down to code is another story. From my understanding, an implementation of logoot[1] is built to create the skeleton of a collaborative environment. From there on, you have the building block to make other things work with it, such as collaborative canvas. I built one using Socket.io on Angular and used Ace Editor own implementation of CRDT > https://github.com/abdusamed91/realtime-codeeditor I used the following references to build it 1) https://alligator.io/angular/socket-io/ 2) https://medium.com/@ofir3322/create-an-online-ide-with-angul... To get started with the theory CRDT low level algorithm, these two post go into great details 1) https://conclave-team.github.io/conclave-site/ 2) http://digitalfreepen.com/2017/10/06/simple-real-time-
collaborative-text-editor.html [1]https://hal.inria.fr/inria-00432368/document I'd love to take it to another level if anyone here has mutual interest in this field of work. |