# Tiptap vs Lexical: extension framework or state machine

*Source: https://www.editorstack.cc/compare/tiptap-vs-lexical — last updated 2026-09-17. Licensed CC BY 4.0 with attribution to EditorStack.*

## Summary

- Tiptap wraps ProseMirror in an extension system and gets you to a working editor fastest; Lexical exposes an immutable editor state and asks you to assemble more before anything renders.
- Our measurements: Tiptap 123.3 kB gzip and 11 lines of application code, Lexical 104.9 kB and 25 lines, with medians of 171 ms and 159 ms to a rendered editor.
- Tiptap sells collaboration, comments and AI as hosted products; Lexical is MIT with no commercial tier at all, which matters if those features are on your roadmap.

## At a glance

| Product | Type | Licence | Frameworks | Bundle (min+gzip) | Price from | Self-hosted | White label | Score |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [Tiptap](https://www.editorstack.cc/libraries/tiptap) | library | MIT | Any (framework-agnostic) | 123.3 kB gzip | Free tier, paid plans undisclosed | Yes | Yes | 8.3 |
| [Lexical](https://www.editorstack.cc/libraries/lexical) | library | MIT | Any (framework-agnostic) | 104.9 kB gzip | Free (open source) | Yes | Yes | 7.4 |

## Two philosophies about what a framework owes you

Tiptap's answer: a good default. StarterKit bundles paragraphs, headings, lists, marks and history, so
one import produces an editor and you remove what you do not want.

Lexical's answer: nothing implicit. The composer, the rich-text behaviour, the editable element, the
error boundary and the history are separate pieces you assemble, because Lexical treats every one of
those as a decision rather than a default.

Neither is wrong, and our benchmark quantifies the difference precisely: eleven lines against
twenty-five for editors that do the same thing.

## Where Tiptap wins

**Time to something usable.** Less than half the code, and the extension catalogue covers most
document requirements without writing nodes yourself.

**Framework reach.** A framework-agnostic core with first-party React and Vue bindings. Lexical's
non-React bindings are community territory.

**Documentation shaped around tasks**, with a runnable example per extension.

**Commercial answers to hard problems.** Collaboration, comments, AI and conversion exist as products
you can buy rather than projects you must run.

## Where Lexical wins

**A smaller core**, at 104.9 kB gzip against 123.3 kB, with an architecture built for very large
documents rather than demos.

**A stricter state model.** Immutable state and transactional updates make behaviour predictable in
exactly the situations that break editors: collaboration, undo, programmatic edits.

**No commercial tier at all.** Everything is MIT. Nothing you build on can be moved behind a paid plan
later, which is a real consideration for a dependency you intend to keep for years.

**Production credibility at scale.** Meta runs it in products with more editing traffic than anything
else in this dataset.

**Fewer layers when debugging.** With Tiptap you eventually meet ProseMirror; with Lexical the model
you learn is the model you debug.

## The commercial difference is the underrated one

Teams compare these two on ergonomics and pick Tiptap, then discover eighteen months later that the
collaboration they need is a subscription.

That is not a criticism — maintaining collaboration infrastructure is genuinely hard and worth paying
for — but it belongs in the evaluation. Write down which features you expect to need in two years and
check which are MIT in each project. For a product that will eventually want multiplayer editing, that
single question can outweigh the eleven-lines-versus-twenty-five one.

## Migration between them

Both store a document tree, and both let you serialise to HTML or JSON, so content is portable with a
converter you write. What does not transfer is everything above the document: extensions and plugins
are unrelated APIs, and every custom node type needs reimplementing.

Realistically, migrating means rewriting the editor layer while keeping your content. Budget by the
number of custom node types you built, not by document count.

## Decision checklist

1. **How much editor UI were we going to build anyway?** Both make you build it; only the setup cost
   differs.
2. **Will we need collaboration, and who runs it?** The clearest long-term divergence between them.
3. **Is any part of our front end not React?** Only Tiptap has a first-party answer.
4. **How large do documents get?** Lexical's model is built for the extreme end.
5. **Can we live with a pre-1.0 API?** Lexical is at 0.50.0; Tiptap is past 3.x.

## The number that matters

Eleven against twenty-five lines. Everything else on this page is a preference; that ratio is the
measurable difference in what each framework decides for you, and it is visible in the code samples on
the [Tiptap](/libraries/tiptap) and [Lexical](/libraries/lexical) reviews.


## Frequently asked questions

### Which is easier to start with?

Tiptap, clearly. Eleven lines against twenty-five for an equivalent editor in our benchmark, because StarterKit bundles the common extensions and Lexical requires wiring the composer, a rich-text plugin, a content-editable, an error boundary and history explicitly.

### Which is smaller?

Lexical, at 104.9 kB gzip against Tiptap's 123.3 kB with StarterKit, both measured with React external.

### Which should I pick for collaborative editing?

Both support it architecturally. Tiptap sells a hosted collaboration service, which is faster to adopt and a recurring cost; Lexical expects you to bring your own transport, which is more work and no vendor.
