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
ianstormtaylor avatar

ianstormtaylor/slate

0
View on GitHub↗
31,698 stars·3,320 forks·TypeScript·MIT·48 viewsslatejs.org↗

Slate

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, including block and inline element management, history tracking for undo and redo operations, and the conversion of HTML, JSX, or hyperscript into internal state. It also provides tools for creating interactive user interface elements, such as selection-aware hover toolbars and custom syntax highlighting.

Features

  • Rich Text Editors - Provides a customizable framework for building rich text editors with specific document structures and custom elements.
  • Collaborative Editors - Enables multiple users to synchronize and collaborate on shared documents in real time.
  • Real-time Collaborative Editors - Implements real-time synchronization of document operations to enable simultaneous multi-user editing.
  • Hierarchical Document Models - Represents document content as a recursive tree of nodes to support complex nested elements.
  • Document Schema Enforcement - Enforces document layout rules by restricting which node types can be nested within other specific nodes.
  • Recursive Data Models - Organizes document content as a nested hierarchy of nodes to support complex block and inline elements.
  • Action-Based State Tracking - Tracks document changes as a sequence of discrete operations to enable undo, redo, and collaborative syncing.
  • Plugin-Based Editor Frameworks - Offers a plugin-first architecture that allows custom logic to be injected into the editor pipeline.
  • Extensible Plugin Architectures - Extends editor functionality by injecting custom logic and components into the core rendering and transformation pipeline.
  • Rich Text Renderers - Maps a nested data model to visual elements including inline formatting, images, and interactive toolbars.
  • Schema-Enforced Editors - Uses a schema-based system to enforce structural constraints within a recursive tree of nodes.
  • Collaborative Editing Frameworks - Allows multiple users to edit the same document in real time by syncing operations across clients.
  • Block-Level Formatting Tools - Allows transforming text blocks into headings, block quotes, and aligned paragraphs.
  • Document Structure Models - Organizes content as a recursive tree of nodes to enable the creation of complex elements like nested quotes.
  • Atomic Inline Elements - Treats non-textual elements as atomic units that bypass the standard text-editing flow for custom rendering.
  • Constraint Layout Engines - Restricts where specific types of content can be placed using constraints to ensure a consistent layout.
  • Block Grouping Components - Nests block-level elements within other blocks to create complex structural elements like tables.
  • Document Transformation Commands - Provides high-level commands to expressively modify the document state.
  • Rich Text List Management - Manages the wrapping of content in list containers and the transition between list items and paragraphs.
  • Syntax Highlighting - Formats text using visual decorations to provide live previews of markup languages based on content patterns.
  • Text Formatting Tools - Provides utilities for applying inline styles such as bold, italic, and underline to text selections.
  • Editor Text Decorators - Applies visual styles to text ranges by mapping internal state patterns to decorative rendering layers.
  • Undo-Redo History - Maintains a stack of operations to support undo and redo functionality for rich text content.
  • React Editors - Completely customizable rich text framework.
  • Rich Text Editors - Customizable rich text editor framework.
  • Standalone UI Components - Framework for building rich text editors.
  • 富文本编辑器/Markdown编辑器/Markdown解析器 - Listed in the “富文本编辑器/Markdown编辑器/Markdown解析器” section of the Awesome Frontend awesome list.

Star history

Star history chart for ianstormtaylor/slateStar history chart for ianstormtaylor/slate

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

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

Projects sharing features with Slate

These projects share indexed features with Slate. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • 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
  • red-axe/am-editorred-axe avatar

    red-axe/am-editor

    977View on GitHub↗

    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

    TypeScriptam-editorcollaborative-editorcontenteditable
    View on GitHub↗977
  • heyscrumpy/tiptapheyscrumpy avatar

    heyscrumpy/tiptap

    37,270View on GitHub↗

    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

    TypeScript
    View on GitHub↗37,270
  • 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
Compare all 30 related projects→

Frequently asked questions

What does ianstormtaylor/slate do?

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.

What are the main features of ianstormtaylor/slate?

The main features of ianstormtaylor/slate are: Rich Text Editors, Collaborative Editors, Real-time Collaborative Editors, Hierarchical Document Models, Document Schema Enforcement, Recursive Data Models, Action-Based State Tracking, Plugin-Based Editor Frameworks.

Which projects share features with ianstormtaylor/slate?

Projects with overlapping indexed features include: facebook/lexical — Lexical is a modular rich text editor framework used to build extensible web-based editors. It functions as a… red-axe/am-editor — This project is a framework for building real-time collaborative rich-text editing environments. It provides a… heyscrumpy/tiptap — Tiptap is a headless rich text editor framework and extensible WYSIWYG framework designed for building custom text… typecellos/blocknote — BlockNote is a block-based rich text editor and a real-time collaborative workspace. It uses a JSON-based data model… yoopta-editor/yoopta-editor — Yoopta-Editor is a headless framework for building customizable block-based rich text editors. It utilizes a… codemirror/dev — CodeMirror is a browser-based code editor framework and modular extension system used to embed full-featured text…