# Luthor

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

Source page: https://www.lyfie.org/projects/luthor/
Made by Lyfie (https://www.lyfie.org), the open-source organisation founded by Rahul NS Anand.

- Type: library
- Status: Stable
- Licence: MIT (free and open source)
- Website: https://www.luthor.fyi
- Documentation: https://www.luthor.fyi/docs/getting-started/
- Source code: https://github.com/lyfie-org/luthor
- Highlights: Presets, Headless, Lexical, TypeScript

## Get started

```bash
npm install @lyfie/luthor react react-dom
```

Luthor is a rich-text editor ecosystem for teams that want a modern developer
experience without editor lock-in. It ships as two packages, so you can start
fast and go deep later.

## Two packages, one editor

- **`@lyfie/luthor`** — plug-and-play presets with a polished UI, for shipping
  quickly with almost no setup.
- **`@lyfie/luthor-headless`** — the typed extension runtime underneath, for
  when your product needs full control of every pixel.

## Why it exists

Editors are where products quietly lock people in: proprietary formats, paid
tiers for basic features, UI you cannot change. Luthor is MIT-licensed, built on
Meta's [Lexical](https://lexical.dev), works with React, Next.js, Astro, Vite and
Remix, and round-trips Markdown losslessly.

## Proven in production

Luthor is the editor inside [Papyra](/projects/papyra/) — its slash commands,
tables and embeds all run on it. Lyfie builds on its own tools, so the rough
edges get found and fixed here first.

## What it does

- **Type / for anything.** Headings, lists, tables and more — one keystroke away.
- **Words that look right.** Pick the font, size and spacing that suit your product.
- **Colour and highlight.** Mark what matters, without messy formatting underneath.
- **Lists that behave.** Bullets, numbers and checklists in one smooth flow.
- **Pictures, video, any link.** Drop media in, then resize, align and caption it.
- **Light and dark.** At home in either, without fragile hacks.
