Open-source libraries and frameworks for building customizable rich text editing experiences within web applications.
Quill is a modular, web-based rich text editor designed for structured content authoring. It provides a comprehensive toolkit for building tailored editing experiences, allowing developers to manage document state, handle user input, and synchronize content through a predictable, serializable data model. The editor distinguishes itself through a custom document abstraction that maps the browser DOM to a structured tree of nodes, ensuring consistent behavior across different environments. It utilizes an operational change tracking system that represents all document modifications as a sequence
Quill is a modular, TypeScript-based rich-text editor with a structured document model, plugin system, undo/redo, and browser contenteditable abstraction, covering nearly all the required features and making it a flagship choice for building customizable browser editors.
Tiptap is a headless rich text editor framework and extensible WYSIWYG framework designed for building custom text editors. It functions as a high-level wrapper around the ProseMirror toolkit, separating core editing logic and state management from the user interface. The framework enables real-time collaborative editing through a synchronization system using conflict-free replicated data types. It also supports the integration of AI content generation to provide automated suggestions and content refinement directly within the editor. The system utilizes a plugin-based extension architecture
Tiptap is a TypeScript headless rich-text editor framework built on ProseMirror that delivers a plugin-system, schema-driven content model, collaborative editing via CRDTs, undo/redo, customizable rendering, and import/export capabilities—exactly the customizable browser-based editor toolkit this search requires.
Slate is a customizable rich text editor framework that treats documents as a recursive tree of nodes. It functions as a schema-based, state-driven system designed to enforce structural constraints and manage nested components within a structured document model. The framework utilizes a plugin-based architecture to extend editor functionality, allowing for the injection of custom logic into the rendering and transformation pipeline. It supports real-time collaborative editing by synchronizing document operations across multiple users. The system covers a broad range of capabilities, includin
Slate is a TypeScript rich-text editor framework that provides a schema-driven document model, plugin architecture, undo/redo, and collaborative editing support—exactly the kind of customizable, browser-based editor framework this search targets.
Yoopta-Editor is a headless framework for building customizable block-based rich text editors. It utilizes a JSON-based document engine to manage editor state and provides a WYSIWYG interface for creating structured documents. The system separates core document logic from the visual layer, allowing for complete customization of the user interface. The framework is designed for real-time collaborative editing, featuring a synchronization engine with conflict resolution and remote cursor presence tracking. It offers a highly extensible plugin system that allows developers to define new content
Yoopta-Editor is a headless rich-text editor framework built in TypeScript, offering a JSON-based document engine, an extensible plugin system, and built-in real-time collaborative editing with conflict resolution—directly matching the request for a customizable browser-based editor framework with those advanced features.
Tiptap is a headless, modular framework designed for building custom rich-text editors. It provides a developer-focused abstraction layer over a structured document model, allowing for full control over the underlying schema through a plugin-based architecture. By separating document state management from the user interface, it enables the creation of tailored editing experiences that remain framework-agnostic. The project distinguishes itself through a robust collaborative engine that supports real-time multi-user editing, conflict resolution, and presence tracking. It integrates artificial
Tiptap is a headless, modular rich-text editor framework built on ProseMirror, offering a plugin system, collaborative real-time editing, and a schema-driven content model — exactly the kind of customizable editor toolkit you're looking for.
Lexical is a modular rich text editor framework used to build extensible web-based editors. It functions as a state-driven content editor that maintains a serializable, immutable snapshot of document content to ensure predictable updates and accessibility compliance. The framework is distinguished by its plugin-based architecture and customizable node framework, which allow developers to extend editor behavior through specialized content nodes and encapsulated runtime logic. It also includes a collaborative editing engine capable of synchronizing document state across multiple clients in real
Lexical is a modular rich-text editor framework with a plugin-based architecture, a state-driven content model, built-in collaborative editing, and serialization support, directly matching the need for a customizable browser-based editor that covers all key requirements.
ProseMirror is a rich text editor framework and collaborative editing engine designed for building semantic content editors. It provides a toolkit for creating text interfaces where document structure is governed by a declarative, schema-driven model. The framework enables the development of editors that treat text as structured data rather than simple HTML, ensuring that document content remains semantically consistent through a strict schema. This architecture supports real-time collaborative editing to synchronize document changes across multiple users.
ProseMirror is a JavaScript rich-text editor framework with a schema-driven content model, plugin/extension system, collaborative editing support, and full custom rendering, making it a comprehensive and well-suited toolkit for building customizable browser-based editors.
Draft-js is a framework for building customizable rich text editors within React applications. It serves as a state manager for document content and metadata, providing a system to handle text ranges, atomic blocks, and the conversion of HTML strings into structured document formats. The framework enables the creation of interactive editing interfaces that support custom inline styling and configurable block rendering. It includes tools for managing rich media document handling, allowing the integration of non-editable content and metadata into a text stream. The project covers a broad range
Draft.js is a React-based framework for building customizable rich-text editors with a state-managed content model, inline styling, undo/redo, HTML import/export, and a plugin system—exactly the kind of browser editing library you are looking for, even though it is now archived.
BlockNote is a block-based rich text editor and a real-time collaborative workspace. It uses a JSON-based data model to organize content into draggable, nestable blocks rather than a single flat document. The system functions as a high-level interface built on ProseMirror that abstracts document state into discrete, manipulatable content blocks. The project serves as a framework for integrating large language models into document editors, enabling context-aware text generation and AI-driven workflows. It also acts as a document export engine capable of converting structured block data into fo
BlockNote is a TypeScript block-based rich-text editor framework built on ProseMirror that provides a JSON-driven content model, collaborative editing via Yjs, an extension system, and custom UI composability—directly matching the search for a customizable browser-based rich-text editor library.
CKEditor 5 is a modular rich text editor framework and JavaScript UI component used to build customizable visual editors. It serves as a system for generating HTML or Markdown content, providing both full rich-text editor components and restricted inline editor components for web applications. The framework includes a collaborative editing engine for real-time simultaneous editing, change tracking, and threaded commenting. It features an AI text assistant for polishing, rewriting, and generating content, as well as a document export engine that transforms rich text into PDF and Word files. T
CKEditor 5 is a modular rich-text editor framework for building customizable browser-based editors, with a collaborative editing engine, plugin architecture, schema-driven model, and HTML/Markdown export, making it an excellent fit for this search.
This project is a browser-based JavaScript library that transforms standard web elements into inline, WYSIWYG rich text editing areas. It functions as a programmatic wrapper around the native browser content-editable attribute, providing a structured interface for managing text input, media embedding, and document formatting directly within existing page layouts. The editor is distinguished by its contextual floating toolbar, which dynamically appears based on user text selection to provide relevant formatting options. It utilizes a plugin-based architecture that allows developers to inject c
Medium Editor is a classic browser-based WYSIWYG rich-text editor built on contenteditable with a plugin architecture, making it a good fit for building customizable editors, though it lacks a schema-driven content model and collaborative editing—features that some newer frameworks offer.
Editor.js is a block-style rich text editor that organizes document content into an ordered array of independent, modular data objects. By replacing monolithic HTML strings with a structured, machine-readable JSON format, it decouples the content creation process from the final presentation layer. The editor functions as a browser-based orchestration layer that manages user input, focus, and state synchronization across individual blocks. Its architecture is built on a plugin-driven system where external modules register themselves to handle specific content types, providing custom rendering
Editor.js is a plugin-driven, block-style rich-text editor framework that fits the search for a customizable browser-based editor, though it lacks built-in collaborative editing and explicit markdown/HTML import/export.
Editable is a modular framework for building custom web-based rich text editors. It provides a structured environment for managing complex document content, including support for structured data like lists and grids, while maintaining an immutable tree representation to ensure predictable state manipulation. The framework distinguishes itself through a collaborative engine that synchronizes document state across multiple users in real-time using operational transformation. It also features a plugin-based architecture that allows developers to intercept rendering and node behavior, enabling th
This is a collaborative rich-text editor framework built in TypeScript that focuses on extensibility, stability, and performance, fitting the search for a browser-based editor framework with support for plugins, collaborative editing, and custom rendering.
This project is a framework for building real-time collaborative rich-text editing environments. It provides a structured, schema-based engine that enforces document integrity while allowing multiple users to modify content simultaneously through synchronized state management and conflict resolution protocols. The editor distinguishes itself through a highly modular plugin architecture that supports the integration of complex, interactive UI components built with external frontend libraries. By utilizing a custom rendering engine and a versioned, immutable document state tree, it enables deve
am-editor is a full-featured TypeScript rich-text editor with a plugin system and built-in collaborative editing, allowing you to extend it with React or Vue components — exactly the kind of customizable browser-based editor framework this search is after.
Quill is a JavaScript rich text editor library used to build WYSIWYG web editors. It serves as a modular editor framework for creating browser-based document authoring tools with a customizable interface and document model. The system functions as a modular content editor, providing a plugin system to extend formatting and embedding capabilities. This allows for the development of specialized text editors through custom modules and formatting plugins. The library covers the implementation of visual content creation interfaces that render formatted text and media in real time. Its primary cap
Quill is a modular, extensible rich-text editor framework built in TypeScript that gives you a browser-based WYSIWYG editor with plugins, undo/redo, and custom rendering, fitting your search for a JavaScript editor framework — though it lacks built-in collaborative editing support.
Draft-js is a framework for building customizable rich text editors within React applications. It functions as a content editable framework that separates the underlying data model from the visual rendering layer, acting as a rich text content engine to manage complex text data and formatting. The project utilizes an immutable state management system to ensure consistent updates and predictable undo history. It manages editor state through persistent data structures, providing an immutable data state manager to prevent accidental mutation. The framework includes capabilities for high perform
Draft.js is a React-based framework that provides an immutable content model and contenteditable abstraction, enabling custom rich text editors with undo/redo and composable rendering, though it lacks built-in collaborative editing and HTML import/export, which require additional libraries.
TinyMCE is a JavaScript rich text editor and WYSIWYG HTML editor that provides a visual interface for creating and formatting content within web applications. It functions as an extensible editor framework and web content management UI, allowing users to author and style documents through a browser-based interface. The project is distinguished by a plugin-based extension system and a public API that enable the addition of custom capabilities and modifications to the visual interface. It utilizes a framework-agnostic core, providing dedicated integration for React, Vue, and Angular. The syste
TinyMCE is a battle-tested JavaScript rich-text editor with a plugin system, undo/redo, and browser contenteditable abstraction, fitting the search for a customizable editor framework; however, it lacks a schema-driven content model and native collaborative editing, which narrower more modern frameworks may offer.