awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
facebookarchive avatar

facebookarchive/draft-jsArchived

0
View on GitHub↗
22,641 stars·2,606 forks·JavaScript·MIT·17 viewsdraftjs.org↗

Draft Js

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 of editor capabilities, including accessibility support via ARIA labels, custom keyboard event handling, and the management of clipboard and drag-and-drop operations. It also provides controls to override default browser text behaviors such as auto-correct and auto-capitalize.

Features

  • Rich Text Editors - Implements a comprehensive framework for building customizable rich text editors with structured document models in React.
  • Rich Text Editors - Provides a comprehensive framework for building customizable, web-based rich text editors with structured document models.
  • Block-Based Document Models - Implements a document model organized as a sequence of discrete blocks to separate structure from inline styling.
  • Immutable State Utilities - Maintains the document state as a persistent, immutable data structure to enable efficient snapshots and undo history.
  • Document - Manages metadata and entities associated with specific text ranges within the document state.
  • Content Block Editors - Enables the insertion and movement of non-editable atomic blocks of content within the document.
  • Content Editable Proxies - Provides a proxy wrapper around native HTML editable elements to synchronize document state with a React view.
  • Range-Based Entity Mappings - Tracks metadata for specific text spans using decoupled start and end offsets to manage document entities.
  • Document State Management - Serves as a state manager for document content and metadata, handling text ranges and atomic blocks.
  • Text Input Managers - Provides logic for overriding default browser text behaviors and keyboard events to implement specific editing and navigation logic.
  • HTML to Document Parsers - Includes a system for parsing HTML strings into structured document formats for use within the editor.
  • Keyboard Navigation Interception - Intercepts specific keyboard events and arrow key navigation to trigger custom editor behaviors.
  • Rendering Pipelines - Uses an architectural pipeline to map internal content state to customizable React components for visual output.
  • Structured Block Renderers - Allows mapping specific content block types to corresponding React components to control visual rendering.
  • Editor Accessibility Optimizations - Implements ARIA labels and keyboard navigation support to ensure complex editor components are accessible to screen readers.
  • HTML Content Processing - Provides utilities for parsing raw HTML strings and integrating them into the structured document model.
  • HTML Content Processing - Parses raw HTML strings into a structured document format, supporting images and various link protocols.
  • Inline Styling Systems - Supports applying custom visual styles to specific ranges of text through a user-defined styling function.
  • Rich Media Document Handling - Provides a system for managing atomic blocks and entity metadata to integrate images and links into the text stream.
  • DOM Reconciliation Utilities - Implements manual DOM reconciliation to synchronize internal state with the browser DOM and prevent cursor jumps.
  • React Editors - Rich text framework built for React with immutable models.

Star history

Star history chart for facebookarchive/draft-jsStar history chart for facebookarchive/draft-js

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Draft Js

Similar open-source projects, ranked by how many features they share with Draft Js.
  • typecellos/blocknoteTypeCellOS avatar

    TypeCellOS/BlockNote

    9,141View on GitHub↗

    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

    TypeScriptblock-basededitorjavascript
    View on GitHub↗9,141
  • basecamp/trixbasecamp avatar

    basecamp/trix

    19,970View on GitHub↗

    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.

    JavaScript
    View on GitHub↗19,970
  • facebook/lexicalfacebook avatar

    facebook/lexical

    23,562View on GitHub↗

    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

    TypeScript
    View on GitHub↗23,562
  • jpuri/react-draft-wysiwygjpuri avatar

    jpuri/react-draft-wysiwyg

    6,471View on GitHub↗

    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

    JavaScript
    View on GitHub↗6,471
See all 30 alternatives to Draft Js→

Frequently asked questions

What does facebookarchive/draft-js do?

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.

What are the main features of facebookarchive/draft-js?

The main features of facebookarchive/draft-js are: Rich Text Editors, Block-Based Document Models, Immutable State Utilities, Document, Content Block Editors, Content Editable Proxies, Range-Based Entity Mappings, Document State Management.

What are some open-source alternatives to facebookarchive/draft-js?

Open-source alternatives to facebookarchive/draft-js include: typecellos/blocknote — BlockNote is a block-based rich text editor and a real-time collaborative workspace. It uses a JSON-based data model… basecamp/trix — Trix is a rich text editor and WYSIWYG text component designed for composing and formatting documents with inline… facebook/lexical — Lexical is a modular rich text editor framework used to build extensible web-based editors. It functions as a… jpuri/react-draft-wysiwyg — This project is a rich text editor component for React applications that provides a visual interface for composing and… yoopta-editor/yoopta-editor — Yoopta-Editor is a headless framework for building customizable block-based rich text editors. It utilizes a… wagtail/wagtail — Wagtail is an open-source content management system built on the Django web framework. It provides a structured,…