Slate
Slate is a completely customizable framework for building rich text editors. Slate lets you build rich, intuitive editors like those in Medium, Dropbox Paper or Google Docs, which are becoming table stakes for applications on the web, without your codebase getting mired in complexity. It can do this because all of its logic is implemented with a series of plugins, so you aren't ever constrained by what is or isn't in "core". You can think of it like a pluggable implementation of contenteditable built on top of React. It was inspired by libraries like Draft.js, Prosemirror and Quill. Slate is currently in beta. Its core API is usable now, but you might need to pull request fixes for advanced use cases. Some of its APIs are not "finalized" and will (breaking) change over time as we find better solutions. The most important part of Slate is that plugins are first-class entities.
Learn more
Plate
Plate is a rich-text editor framework for React, designed to simplify complex text editing needs. Built with Slate.js and TypeScript, it offers a highly customizable and extensible editing experience. Plate provides a wide range of plugin packages that enhance the behavior, hooks, serialization, normalization, and other features of the editor. These plugins are "headless," meaning they are unstyled by default, allowing developers to style them as needed. It includes state management with Zustand stores, custom hotkeys, API methods, and transforms accessible through editor.api and editor.transforms. Plate also offers unstyled and accessible components based on Radix UI, serving as the foundation for building high-quality design systems. For those seeking a visually appealing interface, Plate provides pre-built styled components based on shadcn/ui, which can be customized to create a unique, accessible, and visually pleasing user interface.
Learn more
BlockNote
BlockNote is an open source, block-based rich text editor for React that offers a polished, Notion-style user experience with minimal setup. It comes with built-in UI components like menus and toolbars, which are fully customizable. It supports drag-and-drop functionality, allowing users to organize content into blocks that can be nested or rearranged. Developers can extend the editor with custom blocks, schemas, and plugins, benefiting from first-class TypeScript support for type safety and autocompletion. BlockNote enables real-time collaboration using Yjs, with support for providers like Liveblocks and PartyKit, allowing multiple users to edit documents simultaneously. It also supports theming, markdown, and HTML conversion, and can be used with vanilla JavaScript for non-React projects. Built on top of ProseMirror and TipTap, BlockNote simplifies the process of adding a rich text editor to applications, eliminating the need to build interface elements from scratch.
Learn more
TinyMCE
TinyMCE gives you total control over rich text editing within any application.
As a WYSIWYG component, it can be seamlessly integrated into your web app's existing tech stack – and can be fully customized via its 400+ APIs and 12+ framework integrations or used out-of-the-box as an enterprise-grade editor.
TinyMCE paid plans include advanced features that are perfectly suited to enterprise-grade uses and even the most complex edge-cases. Three popular premium features:
1. AI Assistant: Generative AI = faster writing
→ Embed the power of AI inside your app with pre-written prompts
2. PowerPaste: 99.9% accurate copy-paste = less support tickets
→ Cleanly copy-paste from MSWord, GDocs, Excel, and other popular apps
3. Spell Checker Pro: Eliminate errors = consistent on-brand spelling
→ Check up to 13 languages (plus medical terms) and build custom dictionaries
Available in the cloud and on-premise. Easily integrates with React, Angular, Vue, Bootstrap and others.
Learn more