

Quill’s architecture is more modular, allowing for easier customization of internals. Quill users are already doing so in production. Instead we will compare the ideas and goals:īoth Quill and ProseMirror implement and maintain a data model to operate on with APIs, instead of allowing users to modify the DOM directly. You are welcome to use it, but don’t expect it to be very stable yet. It isn’t thoroughly tested, and the API might still change across 0.x releases. That being said a robust comparison of the product and implementation is premature since ProseMirror is still in the development stages, as noted in their README: ProseMirror is relatively new but has already captured signficant attention, being built by the same author of CodeMirror. Draft provides the building blocks but you will have to implement all the pieces above the data layer yourself. The main difference is still that Quill is a ready to use rich text editor, with user interactions considered and interfaces thought out and implemented. React, React DOM, and immutable.js are dependencies of Draft which add a lot of weight for users not already using React.
#CKEDITOR ALTERNATIVE HOW TO#
API simplicity is subjective, so the best metric for you might be to think of a common task, like bolding a range of text, and try to figure out how to do it in Quill and how to do it in Draft. Quill’s only use case is rich text content allowing for a simpler API geared specifically for that use case. Parchment also has a block and inline layer, but inline nodes can be nested, allowing semantic output such as Stronger whereas the equivalent in Draft must use just one inline format node and utilizes inline styles:ĭraft’s API inherits primitives and ideas from React that are more appropriate for general websites. Cloning Medium with Parchment is a great demonstration of what is possible with Parchment.ĭraft organizes nodes into two levels: block and inline. Quill now exposes its document model, called Parchment, and allows customization to an even deeper level than Draft at this point. Prior to Quill 1.0, Draft allowed more customization over its content and document model, but this is no longer the case. It is still worthwhile to compare Quill’s internals with Draft however: Instead, it provides a consistent API for modification and the ability to define new formats and content through Parchment.ĭraft is often compared with Quill, but Draft, by its own description, is a “Rich Text Editor Framework for React.” It provides the building blocks to create an editor, but is not one ready to use by itself. Quill does not support arbitrary modifications to its contents with innerHTML as it leads to surprising and buggy behavior. You need to set or edit the underlying HTML directly with arbitrary HTML.

Quill follows the policy of many other Javascript libraries of supporting the latest two versions of each major browser. Nevertheless, CKEditor or TinyMCE might be a better choice if: Quill’s users have already added customizations to embed slide decks, interactive checklists and 3D models.Īlthough there are differences between them, CKEditor and TinyMCE are compared together because they differ from Quill in similar ways. Therefore, in addition to supporting traditional formats commonly found in word processors (like bold, italics and lists), Quill allows the definition of entirely new formats and content not previously imagined. Quill considers the web as a target output, not just paper.

It allows customization and new additions of formats and content. Quill maintains an internal document model and does not rely on the DOM as the source of truth, allowing it to offer far more powerful and relevant APIs for text editing. Most of CKEditor and TinyMCE’s APIs offer little more than syntactic sugar on top of existing DOM APIs. It offers a substantive API on top of the DOM. It is still possible today to crash an entire browser using contenteditable APIs. Left to their own interpretations, each ended with different implementations that featured their own quirks and a proliferation of bugs, earning contenteditable deserved notoriety. Browsers never fully agreed on or specified the complete scope of contenteditable. It treats contenteditable as an input, not a complete editor or API. Quill introduces several new ideas that separate it from these traditional editors: Comparison with Other Rich Text Editors CKEditor and TinyMCEĬKEditor and TinyMCE are both very widely used, having been around for over a decade.
