Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Great article and fantastic choice!

This is a topic I have been very interested lately. I had been lucky to start using since Slate 0.61.x, but I cannot say anything good about it. It has a major problem with managing large documents [0]. I tried to introduce multiple improvements of performance, but it is very ungrateful project – change in one place affects many things at the same time. I am shocked, how many projects are still using it. For example, open-sourced Notabase [1]. My 4+ weeks with Slate.js completely killed motivation, and I was only thinking to put a whole project to litter.

In the result of being unhappy, I switched to Draft.js. It was 2020, and I was eager to try it out, so I did. Sadly, in 2020 there was also the last release [2]. Initially, I didn't like how it works. I preferred the Slate data model. Also, the draft.js project felt not maintained at that time (by looking at commits activity, issues and pull-requests). It is written in the Flow which I detest. I spent few weeks to try "merge" the draft.js and sentry with doing a "rewrite" to TypeScript. Obviously, quickly I realized myself it is stupid idea.

Then, I took a look at ReMirror. Yet another problem that was struggling with maintenance and active contributors. It is based on ProseMirror, so I thought it is better choice than previous. ReMirror is overly complex for simple things. It was hard to find any help - neither by googling examples nor via ReMirror's Discord (it was dead silence there).

After that, I have found information about the TipTap. Back then, there was only provided support for Vue.js. Fortunately, it was that time, when they have promised the v2 with React support. I skipped it to wait for the new version.

Maybe, a raw ProseMirror with React? Yep, tried it, but I wasn't very happy of the result. I knew the TipTap v2 will be released and there were already existing projects that were using ProseMirror behind the scene, for example: Outline's rich-markdown-editor[3]. It has tons of built-in components that I had with Slate. I was extremely happy about it, because "everything what I needed" was there – typical bold, italic, code, code block, quote, multi-level list and even table editing. Really awesome piece of code! However, authors decided they are opting for TipTap and they have archived repository on GitHub, which means officially the project is dead.

I had no time to test Quill.js. It looked interesting, but it has noticeable poor development pace, and it looks a dead project with many bugs.

Currently, I am using the TipTap v2 and I can't say how happy I am now. I guess I will stick with it for longer. However, I know the journey to find the best Rich Text Editor has not ended :sweat-emoji:. There are more alternatives, for example Stylo [4] that I've found in this week.

[0] Try to copy the contents of https://www.slatejs.org/examples/huge-document and paste it back. In a result, my Firefox on Macbook M1 hangs.

[1]: https://notabase.io/

[2]: https://github.com/facebook/draft-js/releases/tag/v0.11.7

[3]: https://github.com/outline/rich-markdown-editor

[4]: https://stylojs.com/




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: