Anybody have experience with CKEditor or CKsource

I’m in the early stages of building an MVP for an enterprise SaaS startup and am considering using CKEditor 5. Our customers are organizations, and the main use case is to allow members of the organizations to collaborate on documents in real-time. The fact that its open source and they have a service that takes care of the hairy problem of concurrent editing is the main appeal.

For anyone in the community who has used CKEditor:

How have you found working with CKEditor? Have you had any experience customizing it, using the real-time collaboration service, or engaging with their customer support?

Tagging at @aadams since I’ve saw that you’ve been using CKEditor in some posts.

Thanks in advance!

1 Like

We used drafjs with react – love it!
There is a really cool node package called draft-js-plugins-editor which handles a lot of this for you

Hi @ramez. thanks for the response!

Just gave draft-js-plugins-editor a quick glance and didn’t see anything related to real-time collaboration. Am I just looking in the wrong place?

Sorry, I thought you were only interested in an editor per se and would add the collaboration yourself so was short and sweet

With draft you have 2 options

  • Send a diff of draft states (after vs before) to your server and push it down to users – this what I have seen people do. I can’t recall the research but found examples online
  • A bit more convoluted and gets messy with cursor positions, convert to html and diff htmls. But you will need to be an expert in ranges to position the cursor after any diff

@ramez It sounds like you are describing https://en.wikipedia.org/wiki/Operational_transformation

It’s a tricky bit of engineering to get this right, which is one of the reasons I was excited to see the service offered by CKEditor5/CKSource.

Last time I asked something similar I just got pointed to CRDTs as a data structure to use:

I managed to change the project scope instead…

1 Like