Skip to content
EditorStackPlayground

Plate vs Tiptap: Slate with components or ProseMirror with extensions

Plate builds on Slate and ships copy-in shadcn/ui components; Tiptap builds on ProseMirror and ships none. We measured Plate at 150.8 kB gzip and Tiptap at 123.3 kB.

Updated · Plate review · Tiptap review

TL;DR

  • 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.

Plate vs Tiptap at a glance

Generated from the same dataset as the main table, so this cannot drift out of sync with the rest of the site.

Plate and Tiptap compared on licence, framework support, capabilities and price
FactPlateTiptap
Typelibrarylibrary
LicenceMITMIT
First release2021-072020-11
FrameworksReactAny (framework-agnostic)
SSR supportpartialpartial
Bundle (min+gzip)150.8 kB gzip123.3 kB gzip
Price fromFree (open source)Free tier, paid plans undisclosed
Drag & drop canvasPartialPartial
Responsive breakpointsNoNo
Visual style managerNoNo
Custom componentsYesYes
Data bindingNoNo
E-commerce blocksNoNo
Email HTML exportNoNo
AI generationYesVia plugin
Editor i18nPartialPartial
White labelYesYes
Self-hostedYesYes
Our score (0–10)88.3
Last verified2026-08-192026-08-20

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: 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, 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.

Facts about Plate were verified on 2026-08-19 and facts about Tiptap on 2026-08-20. Full source lists are on the Plate review and the Tiptap review.