30 open-source projects similar to facebook/draft-js, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Draft Js alternative.
Immutable.js is a library of persistent data structures and a functional state management toolkit. It provides a collection of immutable objects and arrays that prevent direct mutation to ensure predictable state management in JavaScript applications. The library utilizes structural sharing to efficiently create new versions of data without full copying and implements lazy sequence processing to chain data transformations that execute only when values are requested. It also supports batch mutation processing, allowing multiple changes to be applied to a temporary mutable copy before returning
Squire is a DOM-based rich text editor and WYSIWYG content editor that treats raw HTML as the source of truth. It functions as a system for manipulating the document object model directly to provide a visual interface for editing complex web content. The project focuses on arbitrary HTML editing, allowing the modification of any HTML content without losing original formatting. It includes tools for HTML content normalization and sanitization to ensure that raw input is cleaned and structured consistently before being rendered as editable nodes. The editor's capability surface covers inline f
Trumbowyg is a lightweight JavaScript WYSIWYG editor used to create and format rich-text and HTML content directly within a web browser. It serves as a client-side tool for generating semantic HTML markup and authoring web content. The project features a modular, plugin-based architecture that allows for the addition of new formatting commands and toolbar buttons. It provides a configurable interface where the toolbar layout can be customized via a predefined array and labels can be translated through localization files. The editor covers a wide range of content manipulation capabilities, in
bootstrap-wysiwyg is a WYSIWYG HTML editor and browser-based content editor designed to integrate with the Bootstrap CSS framework. It provides a visual interface for creating and formatting rich text content that outputs HTML markup. The editor allows for custom text formatting workflows through the configuration of toolbars and keyboard shortcuts. Users can embed images via drag-and-drop and utilize a dedicated process to clean up redundant tags and whitespace in the generated markup.
wysihtml5 is an HTML5 rich text editor, HTML sanitizer, and content normalization tool. It is designed to generate semantic and valid HTML5 markup while preventing the use of invalid tags and inline styles. The project distinguishes itself through a content normalization pipeline that converts pasted external content into a consistent document structure. It employs a security layer using sandboxed iframes to parse and clean external content to prevent vulnerabilities. The editor provides capabilities for semantic web authoring by replacing styling tags with standardized class names. It also
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
Trix is a rich text editor and WYSIWYG text component designed for composing and formatting documents with inline styling and block elements. It functions as an HTML content editor that manages and sanitizes input to ensure a secure and consistent document structure, while serving as a document state manager that tracks edit history and persists serialized state. The editor integrates directly with standard HTML forms, converting rich text into data for submission. It features a configurable sanitization engine that cleanses input HTML to remove unsupported tags and mitigate security risks.
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
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
This project is a customizable browser text editor and a schema-driven document framework designed for building React-based WYSIWYG content editors. It replaces standard text areas with a system that represents content as a structured data tree rather than flat HTML, allowing for precise manipulation and validation of documents. The framework serves as an extensible content management interface and a TypeScript UI component library. It enables the development of specialized authoring tools through a plugin system and the use of strongly typed building blocks to ensure consistency across docum
Zustand is a state management library that provides a centralized store for managing shared application data. It functions as a reactive container that connects application state to components, allowing them to subscribe to specific slices of data and trigger updates automatically. By utilizing selector-based data access and immutable state updates, the library ensures that components only re-render when their observed data changes, maintaining a predictable and efficient data flow. The library distinguishes itself through a pluggable, middleware-based architecture that allows for the extensi
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
This is a persistent data structure library for JavaScript that provides collections which prevent the direct mutation of objects and arrays. It serves as an immutable state management tool and functional programming utility, ensuring that data remains unchanged after creation to simplify change detection and state tracking. The library enables the maintenance of application state by producing new versions of data structures during updates. It focuses on efficient data comparison by checking actual content instead of memory references and supports a functional programming workflow to prevent
Simditor is a JavaScript-based rich text editor and WYSIWYG HTML editor designed for creating structured documents within web applications. It functions as a web-based media editor and HTML content sanitizer, allowing users to compose and format content visually. The project distinguishes itself through an integrated system for handling media and security. It features server-side image upload capabilities that support both local file selection and clipboard pasting, alongside a whitelist-based HTML markup filtering system to ensure consistent and secure output. The editor provides broad capa
Braft Editor is a React-based rich text editor built on Draft.js that provides a framework for content creation and formatting. It functions as a reusable UI component that allows users to compose formatted documents in a WYSIWYG interface and export the resulting content as HTML strings. The project features built-in localization support for multiple languages, including Chinese, Japanese, and Korean. It provides a modular system for extending editor functionality through plugins, custom toolbar mappings, and specialized media entities. The editor covers a broad range of content capabilitie
This project is a rich text editor component for React applications that provides a visual interface for composing and formatting content. It functions as a DraftJS-based WYSIWYG editor, allowing users to create structured documents with inline styles and block types. The editor features a customizable toolbar interface for managing text alignment, lists, and media embeds. It includes a specialized input system for inserting emojis, hashtags, and user mentions as single deletable units. The project provides capabilities for transforming internal editor state into HTML, JSON, or Markdown form
This is a JavaScript immutable data library used to create objects and arrays that prevent direct mutation. It serves as an immutable state manager and object wrapper designed to ensure data consistency by blocking modifications while remaining compatible with standard JavaScript syntax. The library functions as a converter that transforms standard mutable data into frozen structures and can convert them back for local modifications. This allows for a workflow where data is switched between immutable and mutable versions to perform bulk edits before locking the state again. The project provi
Immer is an immutable state management library used to create new versions of data structures. It allows the production of new state by mutating a temporary draft instead of using manual object spreading. The project implements structural sharing to reuse unchanged parts of a data tree between versions, which reduces memory consumption. It also functions as a JSON patch generator to calculate and output the differences between two state versions. To ensure data integrity, the library includes a state mutation protector that freezes data structures to detect and prevent accidental modificatio
CodeMirror is a browser-based code editor and extensible text editor framework. It functions as a programmable interface for rendering code and text with support for numerous programming languages, serving as a reusable component for web-based integrated development environments. The project provides a syntax highlighting engine that applies visual styles to text based on programming language rules. It includes a programming API and a CSS theming system to customize the editor's appearance and extend its functionality with custom behaviors. The framework covers capabilities for embedding tex
Official distribution releases of CKEditor 4.
Ace is a high-performance, browser-based code editor and JavaScript text editor component designed to be embedded into web applications. It functions as a feature-rich alternative to standard text areas, providing a syntax highlighting engine and support for multiple programming and markup languages. The editor is distinguished by its ability to handle large documents containing millions of lines while maintaining stable performance. It supports multi-cursor editing, allowing simultaneous modifications at multiple selection points across a document. The project covers a broad range of develo
A modern, simple and elegant WYSIWYG rich text editor.
Pen is a visual WYSIWYG markdown editor and live editing interface that converts markdown patterns into rich text elements in real-time. It serves as a tool for markdown content authoring and transforming editor state into standard markdown strings for export. The editor features a customizable text interface with a formatting toolbar for text-styling actions. It includes systems for hyperlink management and the automatic conversion of specific character sequences into structured headings, lists, blockquotes, and code blocks during the input process. The project provides capabilities for rea
A markdown editor. http://lab.lepture.com/editor/
Popline is an HTML5 Rich-Text-Editor Toolbar
vim.js is a professional modal text editor implementation designed for integration into web browsers and JavaScript-based applications. It emulates a Vim environment by providing modal editing workflows, keyboard shortcuts, and a state-machine-based input handler to toggle between command and insertion modes. The project enables the embedding of a full-featured text editor into host applications. It facilitates browser-based development by replicating the logic and memory management of a native text editor using JavaScript objects and functions. The editor includes capabilities for syntax hi
EpicEditor is a JavaScript-based Markdown editor designed as an embeddable UI component for web applications. It functions as a local-first content manager, utilizing browser local storage for automatic draft saving and offline content persistence. The editor is distinguished by its use of iframes to isolate styles, preventing CSS leakage between the editor and the host application. It features a customizable Markdown parser that allows developers to replace the default parsing engine with custom functions to transform text into specific output formats. The system provides a split-pane inter
bootstrap-wysihtml5 is a rich text editor that integrates with the Bootstrap CSS framework to provide a visual interface for formatting HTML content. It functions as a localizable web editor and an HTML content parser that filters and validates tags and attributes to ensure clean content output. The project features a customizable rich text interface that allows for the modification of the toolbar and overall visual presentation through external stylesheets and HTML templates. It includes support for custom locale definitions and translated interface labels to accommodate international users.