[Feature] Move from TinyMCE to Editor.js, a better inline editor. #1353

Closed
opened 2026-02-05 00:40:24 +03:00 by OVERLORD · 10 comments
Owner

Originally created by @arpadgabor on GitHub (Sep 11, 2019).

Describe the feature you'd like

While I love the way BookStack works, one of my quirks is the editor. My suggestion would be to replace TinyMCE with a more modern and beautiful editor, that offers inline editing called Editor.js.

Describe the benefits this feature would bring to BookStack users

Much better User Experience while editing pages. Something awesome that could be implemented is directly editing from the page viewing mode, which would make the whole editing process much faster and enjoyable.

This tool is based on "blocks" of contenteditable tags, so content won't freak out so much compared to classic WYSIWYG editors.

Editor.js

  • button for inserting different types of data, like the Ghost or Medium editors.
    + button for inserting different types of data

Edit: Reopened issue because I found a free editor that could be implemented.

Originally created by @arpadgabor on GitHub (Sep 11, 2019). ### **Describe the feature you'd like** While I love the way BookStack works, one of my quirks is the editor. My suggestion would be to **replace TinyMCE** with a more modern and beautiful editor, that offers inline editing called **Editor.js**. ### **Describe the benefits this feature would bring to BookStack users** Much better User Experience while editing pages. Something awesome that could be implemented is directly editing from the page viewing mode, which would make the whole editing process much faster and enjoyable. This tool is based on "blocks" of `contenteditable` tags, so content won't freak out so much compared to classic WYSIWYG editors. ### [**Editor.js**](https://editorjs.io/) + button for inserting different types of data, like the Ghost or Medium editors. ![+ button for inserting different types of data](https://user-images.githubusercontent.com/9270494/64658144-0bf2cb00-d43f-11e9-8aca-865573086ae8.png) _Edit: Reopened issue because I found a free editor that could be implemented._
OVERLORD added the Open to discussion📝 WYSIWYG Editor labels 2026-02-05 00:40:24 +03:00
Author
Owner

@arpadgabor commented on GitHub (Sep 11, 2019):

Closed the issue because after some more inspecting, you need to buy a licence to use it. Oh well.

@arpadgabor commented on GitHub (Sep 11, 2019): Closed the issue because after some more inspecting, you need to buy a licence to use it. Oh well.
Author
Owner

@ssddanbrown commented on GitHub (Sep 11, 2019):

Hi @arpadgabor,
Thanks for the suggestions.

It would probably be valuable if you could describe what you don't like about tinyMCE.

A review and potential alignment of editors is on the roadmap.

@ssddanbrown commented on GitHub (Sep 11, 2019): Hi @arpadgabor, Thanks for the suggestions. It would probably be valuable if you could describe what you don't like about tinyMCE. A review and potential alignment of editors is on the roadmap.
Author
Owner

@arpadgabor commented on GitHub (Sep 11, 2019):

Thanks for the response @ssddanbrown.

I worked with TinyMCE before for a pretty large document and it was a pain in the a** when TinyMCE bugged out on me and resized images randomly or the html generated had weird spacings. Also if I wanted some custom HTML, it wouldn't save the edits.

I've also observed that inline editors are more and more popular and they are really cool and easy to use. You can check out the Ghost blog editor that uses an editor like Editor.js. It makes editing a breeze and offers a better User Experience.

I also saw that Editor.js saves the edited document in JSON instead of HTML, which could be an advantage if you want to create custom plugins, for example the ability to embed books on a page in BookStack.

Imo, the biggest advantage would be the ability to edit inline, and see how the article would look in real-time (as a designer and UX amateur, this would be an important feature for editors).

image

@arpadgabor commented on GitHub (Sep 11, 2019): Thanks for the response @ssddanbrown. I worked with TinyMCE before for a pretty large document and it was a pain in the a** when TinyMCE bugged out on me and resized images randomly or the html generated had weird spacings. Also if I wanted some custom HTML, it wouldn't save the edits. I've also observed that inline editors are more and more popular and they are really cool and easy to use. You can check out the Ghost blog editor that uses an editor like Editor.js. It makes editing a breeze and offers a better User Experience. I also saw that Editor.js saves the edited document in JSON instead of HTML, which could be an advantage if you want to create custom plugins, for example the ability to embed books on a page in BookStack. Imo, the biggest advantage would be the ability to edit inline, and see how the article would look in real-time (as a designer and UX amateur, this would be an important feature for editors). ![image](https://user-images.githubusercontent.com/9270494/64697641-f1097080-d4a9-11e9-97e4-d5bca65d8845.png)
Author
Owner

@ssddanbrown commented on GitHub (Sep 11, 2019):

@arpadgabor Okay, Thanks for the explanation.

TinyMCE also has the ability to become an inline editor so a similar kind of thing could already be achieved. That said, I'm not sure a fully-inline editor would be the best approach, Possibly some kind of hybrid.

I don't see JSON as an advantage over HTML. I think I'd prefer to store fairly standard HTML over a semi-arbitrary JSON format. The storage format has not prevented creating custom plugins so for either, TinyMCE is quite good in that regard. The image editor, code block editor and draw.io tools are all added as custom plugins.

It's good to have another perspective though. I'll keep this open but may merge it into a wider issue once it comes time to review the editors.

@ssddanbrown commented on GitHub (Sep 11, 2019): @arpadgabor Okay, Thanks for the explanation. TinyMCE also has the ability to become an inline editor so a similar kind of thing could already be achieved. That said, I'm not sure a fully-inline editor would be the best approach, Possibly some kind of hybrid. I don't see JSON as an advantage over HTML. I think I'd prefer to store fairly standard HTML over a semi-arbitrary JSON format. The storage format has not prevented creating custom plugins so for either, TinyMCE is quite good in that regard. The image editor, code block editor and draw.io tools are all added as custom plugins. It's good to have another perspective though. I'll keep this open but may merge it into a wider issue once it comes time to review the editors.
Author
Owner

@abossert commented on GitHub (Nov 5, 2019):

Just my two bits worth, but I have used Codemirror in the past and found that it has a kitchen sink approach which works well for a general purpose editor. I have yet to run into anything it does not support. https://codemirror.net/

@abossert commented on GitHub (Nov 5, 2019): Just my two bits worth, but I have used Codemirror in the past and found that it has a kitchen sink approach which works well for a general purpose editor. I have yet to run into anything it does not support. [https://codemirror.net/](https://codemirror.net/)
Author
Owner

@ssddanbrown commented on GitHub (Nov 16, 2019):

Hi @abossert, Thanks for your input. I'm a big fan of codemirror, we actually already use it in a lot of areas of BookStack including the markdown editor & page code blocks.

When it comes to looking at other editors I'll be including prosemirror, a rich-text editor from the same awesome developer as codemirror, in my review.

@ssddanbrown commented on GitHub (Nov 16, 2019): Hi @abossert, Thanks for your input. I'm a big fan of codemirror, we actually already use it in a lot of areas of BookStack including the markdown editor & page code blocks. When it comes to looking at other editors I'll be including [prosemirror](http://prosemirror.net/), a rich-text editor from the same awesome developer as codemirror, in my review.
Author
Owner

@james-geiger commented on GitHub (Nov 19, 2019):

Based on the little I've seen so far, +1 for prosemirror. Really like the user having the ability to switch between MD and WSYISYG.

@james-geiger commented on GitHub (Nov 19, 2019): Based on the little I've seen so far, +1 for prosemirror. Really like the user having the ability to switch between MD and WSYISYG.
Author
Owner

@niklasgrewe commented on GitHub (Nov 8, 2020):

Thanks for the response @ssddanbrown.

I worked with TinyMCE before for a pretty large document and it was a pain in the a** when TinyMCE bugged out on me and resized images randomly or the html generated had weird spacings. Also if I wanted some custom HTML, it wouldn't save the edits.

I've also observed that inline editors are more and more popular and they are really cool and easy to use. You can check out the Ghost blog editor that uses an editor like Editor.js. It makes editing a breeze and offers a better User Experience.

I also saw that Editor.js saves the edited document in JSON instead of HTML, which could be an advantage if you want to create custom plugins, for example the ability to embed books on a page in BookStack.

Imo, the biggest advantage would be the ability to edit inline, and see how the article would look in real-time (as a designer and UX amateur, this would be an important feature for editors).

image

I agree with @arpadgabor in many of these things. Inline editors are actually easier to use. I also had my difficulties with TinyMCE. I also find the design of Editor.js more appealing and the functions can be grasped more quickly.
I would be very happy if the editors would get some more fine-tuning in the future.

@niklasgrewe commented on GitHub (Nov 8, 2020): > Thanks for the response @ssddanbrown. > > I worked with TinyMCE before for a pretty large document and it was a pain in the a** when TinyMCE bugged out on me and resized images randomly or the html generated had weird spacings. Also if I wanted some custom HTML, it wouldn't save the edits. > > I've also observed that inline editors are more and more popular and they are really cool and easy to use. You can check out the Ghost blog editor that uses an editor like Editor.js. It makes editing a breeze and offers a better User Experience. > > I also saw that Editor.js saves the edited document in JSON instead of HTML, which could be an advantage if you want to create custom plugins, for example the ability to embed books on a page in BookStack. > > Imo, the biggest advantage would be the ability to edit inline, and see how the article would look in real-time (as a designer and UX amateur, this would be an important feature for editors). > > ![image](https://user-images.githubusercontent.com/9270494/64697641-f1097080-d4a9-11e9-97e4-d5bca65d8845.png) I agree with @arpadgabor in many of these things. Inline editors are actually easier to use. I also had my difficulties with TinyMCE. I also find the design of Editor.js more appealing and the functions can be grasped more quickly. I would be very happy if the editors would get some more fine-tuning in the future.
Author
Owner

@namxam commented on GitHub (Nov 18, 2020):

I just checked editor.js as I have never heard of it before. It looks quite nice, but collaborative editing is not built in - from what i understand.

But apart from that, I don't think you need to purchase a licence to use it. Isn't it Apache? https://github.com/codex-team/editor.js/blob/next/LICENSE

@namxam commented on GitHub (Nov 18, 2020): I just checked editor.js as I have never heard of it before. It looks quite nice, but collaborative editing is not built in - from what i understand. But apart from that, I don't think you need to purchase a licence to use it. Isn't it Apache? https://github.com/codex-team/editor.js/blob/next/LICENSE
Author
Owner

@ssddanbrown commented on GitHub (May 10, 2021):

Closing this in favour of #2738

@ssddanbrown commented on GitHub (May 10, 2021): Closing this in favour of #2738
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#1353