Skip to content

Type-safe, open-source, typescript friendly and Lexical Based rich text editor built for React - designed for developers who want control without chaos.

License

Notifications You must be signed in to change notification settings

lyfie-org/luthor

Repository files navigation

Luthor

TypeScript-first rich text editor ecosystem for React, built on Lexical.

πŸš€ Production-ready presets + 🧩 headless extension runtime + πŸ”“ MIT license

Project Status Stability

Quality Gates Publish Packages GitHub Release Last Commit NPM - @lyfie/luthor NPM - @lyfie/luthor-headless

Luthor feature preview

✨ Why Luthor

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

πŸ“¦ Packages

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

πŸš€ Quick Start

pnpm add @lyfie/luthor react react-dom
import { 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

🌐 Product Links

πŸ“š Documentation

Public-facing docs:

Developer/maintainer docs:

πŸ’» Monorepo Development

Requirements:

  • Node >=20
  • pnpm@10.4.1

Install + run:

pnpm install
pnpm dev

Quality gates:

pnpm build
pnpm lint
pnpm format
pnpm size:check
pnpm check:rule-contracts

Windows + WSL split workflow (Cloudflare/OpenNext operations):

pnpm run web:preview:wsl
pnpm run web:deploy:wsl

🀝 Contributing

  1. Fork + clone the repo.
  2. Create a feature branch.
  3. Run checks locally (pnpm lint, pnpm build, pnpm test where applicable).
  4. Open a PR with a clear scope and screenshots/GIFs for UI changes.

Issue tracker: github.com/lyfie-org/luthor/issues

πŸ“ˆ Community

Star History

Star History Chart

Contributors

Contributors

πŸ“„ License

MIT (c) Luthor Team

About

Type-safe, open-source, typescript friendly and Lexical Based rich text editor built for React - designed for developers who want control without chaos.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •