Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Real-time collaborative editing with editor.js #908

Closed
teilzeitgeist opened this issue Oct 4, 2019 · 13 comments
Closed

Real-time collaborative editing with editor.js #908

teilzeitgeist opened this issue Oct 4, 2019 · 13 comments

Comments

@teilzeitgeist
Copy link

teilzeitgeist commented Oct 4, 2019

Hey!

Did someone test to get editor.js work with SwellRT or other solutions to make the editing collaborative?

@oliver-dvorski
Copy link

You'd still need to write quite a bit of logic to make these two communicate, no?

@milu2003
Copy link

i need it too!

@marcoancona
Copy link

I tried to get real-time collaboration with Firebase Real-time Database but editor.js lacks fundamental APIs to get this to work nicely.

In particular, without a mechanism to render only some blocks rather than all, a mechanism to pass metadata to blocks or to make individual blocks read-only, it is very hard.

@milu2003
Copy link

milu2003 commented May 7, 2021

I tried to get real-time collaboration with Firebase Real-time Database but editor.js lacks fundamental APIs to get this to work nicely.

In particular, without a mechanism to render only some blocks rather than all, a mechanism to pass metadata to blocks or to make individual blocks read-only, it is very hard.

editorJS didn't think of this from the beginning of design. Multi person real-time collaboration is not only a problem of local rendering, such as how to undo multi person real-time collaboration?

How to compare the differences between the two versions. It is difficult to develop these functions using editorjs. I gave up

How to recover from one version to another is very difficult

@marcoancona
Copy link

My idea was to take advantage of the block nature of the underlying data and to prevent editing a block that is being edited by somebody else, by setting it read-only. Conflict resolution should be easier under the constraint that within the same block there should be no conflicts. Undo only for the changes within the block being edited. This should be possible now that blocks have a unique id. On the other hand, for this to work it should be possible for all other blocks to be updated without disrupting the editing experience of the block the user is working on.

@milu2003
Copy link

milu2003 commented May 7, 2021

As for what you said about locking a block for editing, I think the user experience is very bad

At the beginning of my project, I used editor to develop it. Later, I didn't support collaboration well enough. Later, I used prosemirror to reconstruct the project. I found that prosemirror did a good job in this aspect. Editor has been abandoned by me.

You can also try tiptap, based on prosemirror:
https://www.tiptap.dev/examples/collaborative-editing#example

I think if real-time collaboration is an important feature of your product, then editorjs is not a better choice, because the design didn't take this into account at the beginning.

@hata6502
Copy link
Contributor

hata6502 commented May 7, 2021

This issue may be related to... #1606

@marcoancona
Copy link

Tiptap seems interesting, thanks for the hint @milu2003. Although, I have to say, that I would prefer a block-based editor to build something closer to Notion/Confluence. And editor.js looks good out of the box.

@hata6502 indeed that would help

@milu2003
Copy link

milu2003 commented May 7, 2021

Block building is not difficult. My current product is also in the form of block, similar to notion, but it's very easy for me to build with prosemirror, just a little more work. But the high degree of customization of prosemirror made it easier for me to build programs. What you said out of the box is both good and bad. Although it's easy to use, once you want more complex functions, I think your program will be greatly limited.

@marcoancona

@wmonecke
Copy link

Have you guys looked at this issue? #1155 Looks promising!

@SavoInfostream
Copy link

Any progress update for this feature?

@neSpecc
Copy link
Member

neSpecc commented Dec 5, 2021

Any progress update for this feature?

Yes, we've designed and started implementing it. Here is the first part.

You can support us and boost development speed via donation on OpenCollective.

@SavoInfostream
Copy link

Donated.
Keep it going :)

@codex-team codex-team locked and limited conversation to collaborators Jan 17, 2022
@talyguryn talyguryn converted this issue into discussion #1874 Jan 17, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants