3 ms·
I've recently been building an editor and considered Slate and briefly used Draft (both built on top of React). We ended up using Quill. If any of you have use
by arciini 8y ago
I've recently been building an editor and considered Slate and briefly used Draft (both built on top of React). We ended up using Quill.
If any of you have used Quill and Prosemirror, what were your impressions of the differences between the two?
Here's what I've observed so far:
1. DraftJS (React) works on desktop, but has no plans for collaborative editing, mobile support, and limited development. We found it hard to extend the paste handling for custom behaviours too. On the other hand, there are a lot of nice libraries built around it (we used medium-draft)
2. Slate (React) is definitely the way to go for React developers who don't yet need mobile support. It's mature and has a good community of developers. The one downside is that some of the popular plugins lost compatibility with the latest version of Slate, and some plugin maintainers (notably Gitbooks) have decided to stop tracking the mainline releases [1]
3. Quill (non-React) seems very mature with a good ecosystem of plugins. Instead of relying on React Components, it relies on there being a strict mapping between the DOM and the model that you build. The "model" is the DOM, so-to-speak, but with heavy restrictions to avoid ContentEditable issues. We've found it to be very mature, and it's the only one of the 3 we've found to have great mobile and collaborative-editing support out of the box. That was important for us, so we ended up using it today
(1) https://github.com/GitbookIO/slate-edit-list https://github.com/GitbookIO/slate-edit-list
- lewisjoe 8y agoI've briefly analysed ProseMirror as well as Quill. IMO ProseMirror seemed well built with better literature compared to Quill. ProseMirror's author has truly thought out every API and has got most of the details just right. For example, if I ought to build a grammar checker on top of Quill vs ProseMirror, I couldn't find any APIs in Quill that lets us decorate the view with grammar errors and suggestions, without polluting the core data-model with custom nodes/attributes. ProseMirror on the other hand had the concept of Decorators (https://prosemirror.net/docs/ref/#view.Decorations https://prosemirror.net/docs/ref/#view.Decorations) for such a case. That was just one example. More from the author of Quill himself: https://news.ycombinator.com/item?id=15468402 https://news.ycombinator.com/item?id=15468402
- thesunny 8y agoWith respect to Slate, I've got a PR for mobile that works with Android 8 and 9. Will add 7 support later. I just noticed the problem with the Gitbook plugins and have put up an issue. My hope is to have a de-forked version in mainline either officially or semi-officially supported. Android is happening. The plugins issue is hopefully something we can resolve...
- arciini 8y agoFor the plugins, I actually ported slate-edit-list in my project. Let me see if I can find some time to publish a basic version of it on Github that's decently-easy to install later tonight
- 345tw4erfd 8y agoI've used Quill for a large production app and generally it works well, so I appreciate the work that has gone into it. With that said, it falls a bit short on in-depth documentation and the source code is a bit hard to digest.
- jorde 8y agoWhile I like many things about Slate, I would advice against it if performance is at all important, and if you want a stable API. I'm working on an app which started with Slate but its rendering speed (at least on older versions) is quite bad, and my Prosemirror rewrite beats Slate night and day: I been able to archive 10th of the rendering speed. Prosemirror is quite easy to make compatible with React through nodeViews and the API is better IMO.