GSoC Idea: real-time collaboration on a note

as there are many students showing interest in this idea, I would like to highlight that this a very comprehensive topic. I cannot be said if we would accept a proposal at all, it really depends on the road map shown in the application and your performance solving issues on GitHub and how you interact with the community.

It is not expected to have a full working plug-in at the end of GSoC to "create proof on concept how multi-user, server-based sharing" in Joplin could work could be accepted as well, if there is extensive research is done outlining why this and not this technology is chosen. In addition, the code shall very well be written and documented, so that it can be continued easily by another student in another programming programme or next season.
But again, the demands are very high, if you finished your introduction to the community with the questions, what to do next, it seems that you are not able to read a basic introduction, which is not really helpful in such an application. The same applies if your PR fixing an issue needs a lot of guidance or your commit contains only a bare minimum.
This idea needs very good documentation and communication skills, besides coding skill :wink:

If you are still interested, you may read through:

in Joplin Server pre-release is now available - Development - Joplin Forum ( and we discuessed about in Any suggestions on what web technology could be used to add support for sharing notes? - Development - Joplin Forum (



The sharing feature for Joplin Server is already partially implemented actually - sharing by link is already done (will release in 1.8) and sharing a notebook I have some ideas on how to do it, so we don't need that kind of work at this stage.

but going a step beyond that:
. could almost be a separate app wouldn't it? The app would just displays a text editor with the content shared using a web socket, that's all independent of Joplin, then at regular interval it would update the note via the Joplin Server API.

but maybe:
some of the apps would required to be implemented in the server.
In case of Convergence: The Real-Time Collaboration Engine it looks like it would be quite trivial as it comes with it own convergencelabs/convergence-server: The Convergence Server ( It only needs to be able to block syncs against the server as long as there is collaboration ongoing.
In addition, real-time collaboration is properly not that much required if you can sync quickly against the same target.
or just simply: