# Plate vs Tiptap: Slate with components or ProseMirror with extensions

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

## Summary

- Plate and Tiptap solve the same problem on different foundations: Plate wraps Slate and gives you components to copy into your repository, Tiptap wraps ProseMirror and gives you no interface at all.
- Our measurements: Plate 150.8 kB gzip and 13 lines to a working editor, Tiptap 123.3 kB and 11 lines, at 209 ms and 171 ms respectively.
- Plate is React-only; Tiptap has first-party React and Vue bindings, which decides it for any product with a non-React surface.

## At a glance

| Product | Type | Licence | Frameworks | Bundle (min+gzip) | Price from | Self-hosted | White label | Score |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [Plate](https://www.editorstack.cc/libraries/plate) | library | MIT | React | 150.8 kB gzip | Free (open source) | Yes | Yes | 8 |
| [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 |

## The same job, two ecosystems

Both are React-first rich-text frameworks aimed at products that need a serious writing surface. The
difference is what each one hands you and what it hands you off to.

Plate sits on Slate and ships a large first-party plugin catalogue plus components you copy into your
repository in the shadcn/ui manner. You get UI without a package boundary.

Tiptap sits on ProseMirror and ships extensions but no components. You get behaviour, and the
interface is your project.

## Where Plate wins

**Components you can start from.** For a team using shadcn/ui and Tailwind, the editor arrives
speaking the same design language, and the copy-in model means modifying it is a normal code change.

**Block-level UI is in the catalogue.** Drag handles, slash commands and block menus are maintained
components rather than exercises.

**AI features as first-party plugins**, not a hosted service.

## Where Tiptap wins

**Smaller.** 123.3 kB gzip against 150.8 kB, before either project's extras.

**Framework reach.** First-party Vue binding as well as React; Plate is React-only at an
architectural level.

**A calmer release cadence.** Plate ships major versions frequently enough that upgrades are a
standing line item; Tiptap's 3.x line moves more slowly.

**Nothing in the core is commercial** — although note the inverse risk: Tiptap's *hosted* features
(collaboration, comments, AI) are paid, where Plate's AI plugins are not.

## The honest summary of the foundations

Slate and ProseMirror are both good, and the choice rarely decides a project. What decides it is
which team you would rather join for debugging: Slate's normalisation model, or ProseMirror's
transaction and schema model.

If nobody on the team has an opinion, that is itself an argument for Plate, because its components
mean you meet the foundation later.

## Migration between them

Content migrates through HTML or a document converter you write; both produce structured documents
with familiar node types. Custom nodes and every piece of editor UI do not migrate.

The practical scale is the same as [Tiptap versus Lexical](/compare/tiptap-vs-lexical): count your
custom node types, not your documents.

## Decision checklist

1. **Do we use shadcn/ui and Tailwind already?** If yes, Plate's components are worth real time.
2. **Is any surface non-React?** Only Tiptap answers that.
3. **How much upgrade churn can we absorb?** Plate moves faster.
4. **Do we need collaboration, and who pays for it?** Tiptap sells it; with Plate you assemble it.
5. **Which foundation do we want to debug?**

## The number that matters

27.5 kB — the gzip difference between them in our
[bundle benchmark](/research/bundle-size-benchmark-2026), and one of the smaller gaps between any two
frameworks in this comparison set. These two are close enough on weight that it should not decide
anything; the framework reach and the component story should.


## Frequently asked questions

### Which has more UI out of the box?

Plate, through its copy-in shadcn/ui components — you own the code but you do not write it from scratch. Tiptap ships no interface, so every control is yours.

### Slate or ProseMirror — does the foundation matter?

It matters when things go wrong. Both are mature, and both leak through: with Plate you debug Slate normalisation, with Tiptap you debug ProseMirror transactions. Pick the one your team would rather learn.

### Which is better for a Notion-style editor?

Plate, marginally, because slash commands, drag handles and block-level UI are in its catalogue as components rather than as things you build against commands.
