TypeScript-first rich text editor ecosystem for React, built on Lexical.
π Production-ready presets + π§© headless extension runtime + π MIT license
Luthor is an open-source rich text editor ecosystem designed for teams that want modern DX without editor lock-in.
- π¦ Two-package model: start fast with presets, go deep with headless composition
- π‘οΈ TypeScript-first APIs: safe command/state integrations
- β‘ Lexical-powered: modern performance and extensibility
- π¨ UI freedom: build custom editor experiences when product requirements evolve
- π¦ ESM-first distribution: optimized for modern React bundling
| Package | Purpose | Best for | npm |
|---|---|---|---|
@lyfie/luthor |
Plug-and-play editor presets + polished UI | Shipping quickly with minimal setup | npm |
@lyfie/luthor-headless |
Headless extension runtime and typed editor system | Full UI control and custom workflows | npm |
pnpm add @lyfie/luthor react react-domimport { ExtensiveEditor } from "@lyfie/luthor";
import "@lyfie/luthor/styles.css";
export function App() {
return <ExtensiveEditor placeholder="Start writing..." />;
}Need full control?
pnpm add @lyfie/luthor-headless lexical @lexical/code @lexical/link @lexical/list @lexical/markdown @lexical/react @lexical/rich-text @lexical/selection @lexical/table @lexical/utils react react-dom- Website: luthor.fyi
- Docs home: luthor.fyi/docs/getting-started
- Live demo: luthor.fyi/demo
- GitHub: lyfie-app/luthor
- Sponsor: github.com/sponsors/lyfie-app
Public-facing docs:
- Luthor getting started: documentation/user/luthor/getting-started.md
- Luthor presets/config: documentation/user/luthor/presets-and-configuration.md
- Luthor extensive editor: documentation/user/luthor/extensive-editor.md
- Headless getting started: documentation/user/headless/getting-started.md
- Headless extensions/config: documentation/user/headless/extensions-and-configuration.md
- Headless import/export: documentation/user/headless/import-export.md
Developer/maintainer docs:
- Documentation index: documentation/index.md
- Documentation hub: documentation/documentation-hub.md
- Markdown catalog: documentation/markdown-catalog.md
- README map: documentation/developer_notes/readme-map.md
- Luthor architecture: documentation/developer/luthor/architecture.md
- Headless architecture: documentation/developer/headless/architecture.md
Requirements:
- Node
>=20 pnpm@10.4.1
Install + run:
pnpm install
pnpm devQuality gates:
pnpm build
pnpm lint
pnpm format
pnpm size:check
pnpm check:rule-contractsWindows + WSL split workflow (Cloudflare/OpenNext operations):
pnpm run web:preview:wsl
pnpm run web:deploy:wsl- Fork + clone the repo.
- Create a feature branch.
- Run checks locally (
pnpm lint,pnpm build,pnpm testwhere applicable). - Open a PR with a clear scope and screenshots/GIFs for UI changes.
Issue tracker: github.com/lyfie-org/luthor/issues
MIT (c) Luthor Team
