DemoDocsPlaygroundGitHub

An extensible rich text editor framework built on Lexical. Ship faster with production-ready defaults and TypeScript-first APIs.

Documentation

IntroductionInstallation@lyfie/luthor-headless@lyfie/luthor

Resources

DemoFeaturesPlaygroundGitHubluthor @ npmluthor-headless @ npm

Support the Project

Buy me a coffeeStar on GitHub

Built with ❤️ by Lyfie.org

HomeDocsFeaturesDemodev.toMediumGitHubllms.txtllms-full.txt
  1. Home
  2. Docs
  3. Luthor
  4. @lyfie/luthor Architecture

Luthor Documentation

Start Here

  • Getting Started
  • Installation
  • Dependencies
  • Capabilities
  • Quickstart: @lyfie/luthor
  • Quickstart: @lyfie/luthor-headless
  • AI Agents and Vibe Coding

@lyfie/luthor (Presets)

  • @lyfie/luthor Overview
  • @lyfie/luthor Architecture
  • Feature Flags
  • Props Reference
  • Presets Catalog
  • Extensive Editor
  • Compose Editor
  • Simple Editor
  • Legacy Rich Editor
  • Markdown Editor
  • HTML Editor
  • Slash Editor
  • Headless Editor Preset
  • Commands Reference

@lyfie/luthor-headless (Runtime)

  • @lyfie/luthor-headless Overview
  • @lyfie/luthor-headless Architecture
  • Extensions and API
  • Metadata Comment System
  • Features
  • Typography and Text
  • Structure and Lists
  • Media and Embeds
  • Code and Devtools
  • Interaction and Productivity
  • Customization and Theming
  • Extensions Reference
  • Nodes and Bridges Reference

Integrations

  • React Integration
  • Next.js Integration
  • Astro Integration
  • Remix Integration
  • Vite Integration

Reference Indexes

  • Search Guide
  • Exports Map
  • Preset Selector

Contributing

  • Contributor Guide

Package: luthorType: conceptSurface: preset

@lyfie/luthor Architecture

The preset package is layered so defaults are strong and overrides remain explicit.

What this page answers

  • How are presets composed?
  • Where are feature policies and command IDs resolved?

Layers

  1. Package entry exports presets and core helpers.
  2. Preset modules define mode/profile defaults.
  3. ExtensiveEditor owns shared runtime behavior.
  4. Headless extensions execute Lexical-level behavior.

Feature policy model

  • Presets compose defaults and enforced flags through PresetFeaturePolicy.
  • Final behavior resolves inside ExtensiveEditor via resolveFeatureFlags.
Previous: @lyfie/luthor Overview
Next: Feature Flags