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
Open Source & MIT Licensed

Build Editors That Refuse To Be Boring

Luthor is a performant, type-safe and Lexical Based node package built for modern JS frameworks like React Next.js and Astro.

Crafted with ❤️ by developers for developers who want control without chaos. Zero fluff. No paywalls. No nonsense.

Fully open source. Fully free. Ready for your next project.

AI ActionsAppsChatBlogEmailTeams

Loading editor runtime...

Luthor vs Luthor Headless

Pick the package that matches how quickly you want to ship and how much UI control you need.

Luthor Headless

Full Control

@lyfie/luthor-headless

Composable primitives for teams that want total UI freedom.

  • Build your exact editor UX
  • Extensive Customization API
  • Fine-grained command control
  • Bring your own design system
  • Perfect for product-specific flows
  • Zero dependencies within package for maximum flexibility

Luthor

Full Control + Ready To Ship

@lyfie/luthor

Prebuilt editor presets with extensive customizability

  • One-liner editor configuration
  • Single package for all your editor needs
  • Polished toolbar and extensions
  • Type-safe framework integration
  • Built for production speed
  • Includes Luthor Headless for maximum flexibility

Why Luthor?

Built for teams that need control, reliability, and speed in production editors.

Lightning Performance

Fast typing, stable selection handling, and responsive editor interactions.

Type-Safe Commands

Command APIs are typed so behavior stays predictable as your codebase grows.

Extensible

Add nodes, commands, and product-specific behavior without fighting the editor core.

React-First Design

Built to fit naturally into modern React apps and component workflows.

Production Ready

Designed for real shipping use-cases, not demo-only editor surfaces.

Developer Experience

Clear APIs and practical defaults help teams move faster with less friction.

TypeScript Support Integrated

Strong TypeScript support is built in across editor primitives and utilities.

JSON Data Read

Structured editor state can be consumed and processed cleanly as JSON data.

Features

This is where it gets fun, click through to see the full list of features and how they can help you build your next editor experience.

Loading feature previews...

Frequently asked questions.

Which package should I start with?+

Start with @lyfie/luthor for the fastest setup. Use @lyfie/luthor-headless when you need full custom UI control.

How customizable is the all-inclusive @lyfie/luthor package?+

yes.

Can I ship this in a commercial app?+

Yes. It is MIT licensed and free for commercial use.

How fast can I get an editor on screen?+

Usually in minutes. Install @lyfie/luthor, import styles, and render ExtensiveEditor.

Do I need Lexical setup for @lyfie/luthor?+

@lyfie/luthor comes with everything you need out of the box. No extra setup is needed. However, @lyfie/luthor-headless is where you manage Lexical-level package composition.

Can I switch from preset to headless later?+

Yes. Start with @lyfie/luthor and move to @lyfie/luthor-headless as your product needs deeper customization. Since @lyfie/luthor exports all the headless primitives as well, you can incrementally replace preset components with headless ones without a full rewrite.

What data format should I persist?+

Use JSON for reliable round trips and database-friendly storage. But you can also export HTML or Markdown if that suits your use case better.

Is TypeScript support first-class?+

Yes. The API surface is TypeScript-first for safer integrations and extension work.

Built On Modern. Built For Modern.

Current npm package telemetry plus compatibility targets for modern JavaScript applications.

Luthor footprint

@lyfie/luthor@2.7.10: 295.9 KB unpacked (npm dist metadata).

Luthor-Headless footprint

@lyfie/luthor-headless@2.7.10: 332.1 KB unpacked (npm dist metadata).

Combined footprint

627.9 KB unpacked across both published packages.

Framework compatibility

React, Next.js, Astro (via React), Vite, Remix, and similar setups.

Total downloads

7.4K

Luthor version

2.7.10

Luthor package size

295.9 KB

Headless package size

332.1 KB

Published releases

69

Luthor NPM packageLuthor-Headless NPM packageGitHubSupport the project

Maintained by Lyfie.org. Created by Rahul Anand, BDFL of Lyfie.org. | Data sources last sync: Apr 9, 2026, 10:11:30 AM