Is it possible to work with multiple users in the same note? Since the storage can be a cloud folder (like dropbox) it might be possible to share notes with others. Does a collaborative working leads to (merge) problems or data loss?
I assume this probably very difficult task. Do you have any idea to implement it?
There could be some problems relate to this feature, however this is my idea to implement it.
We allow each user to have their own copy of the note. When he/she press the publish button, their changes will appear in a list called "pending changes". Each change in the list will be reviewed by all users and if all users agree to add that change then that change will be merged. (this is "very heavily" inspired by github)
I have the same question that @ehhc but for a local file (note a file shared in a cloud folder).
Would it be possible for multiple users to edit the same note (stored on a local server) and see each others changes in real time ? That would make Boostnote a solid candidate to work on collaborative projects.
I guess it could be implemented with a cache as described by @ZeroX-DG as Boostnote stores notes as .cson files and not directly .md files. What keeps us from adding a Pending changes entry with changes and timestamps on top of the content entry and let Boostnote manage those based on the timestamps ?
I imagine that as a consequence Boostnote would be probing the file every second or so to check if the note's updatedAt entry had changed ?
Seems like it would help to implement something for operational transforms (most live code/note sharing tools use it). Haven't look too much into the Boostnote source yet, but since it is already using Codemirror, it should hopefully be easy enough to wire something up.
Firebase has firepad that uses op-transforms, but it persists to Firebase's Real Time database. Though it is free initially, it would mean setting up an external service.
Assuming most using Boostnote wouldn't want Firebase included by default (since most use it locally), but it would be great to make it optional. I have some experience wrapping Firepad for a few sites that use react + react-redux, so I'm open to looking into adding it if folks are interested.
If not, hopefully the Operational Transform note is helpful 馃槃
Totally understandable that this is way in the future. Gonna add from my duplicate that Microsoft's Fluid Framework might be a good basis for this:
Article: https://www.theverge.com/2019/11/4/20942031/microsoft-fluid-framework-office-web-preview
Public preview: https://fluidpreview.office.net/unauth
Most helpful comment
Totally understandable that this is way in the future. Gonna add from my duplicate that Microsoft's Fluid Framework might be a good basis for this:
Article: https://www.theverge.com/2019/11/4/20942031/microsoft-fluid-framework-office-web-preview
Public preview: https://fluidpreview.office.net/unauth