Skip to content
EditorStackPlayground

TinyMCE alternatives after the licence change

TinyMCE was MIT through 6.x, GPL-2.0-or-later from 7.0, and self-hosted TinyMCE 8 refuses to run without a licence key. If that change is why you are here, these are the replacements, sorted by what they cost you instead.

Updated

TL;DR

  • TinyMCE's npm licence field reads MIT for 6.x, GPL-2.0-or-later from 7.0.0 (March 2024), and from 8.3.0 points to a licence file offering GPL-2.0-or-later or Tiny's self-hosted commercial terms; self-hosted TinyMCE 8 is disabled without a valid licence key.
  • For a closed-source product the realistic choices are to buy TinyMCE's commercial licence, move to another finished editor on a similar licence, or move to a permissively licensed editor and accept building more interface.
  • Permissive replacements in our dataset: Quill (BSD-3-Clause, toolbar included, 58.7 kB gzip), Tiptap (MIT, headless, 123.3 kB), Lexical (MIT, headless, 104.9 kB) and BlockNote (MPL-2.0 core, block interface included, React-only, 386.1 kB).

What actually changed

The npm registry records the licence each TinyMCE version was published under:

  • 6.x: MIT.
  • 7.0.0, March 2024: GPL-2.0-or-later, with a new license_key option so that developers make "a conscious decision" between the GPL and a commercial licence.
  • 8.3.0, December 2025, onwards: "SEE LICENSE IN license.md", offering GPL-2.0-or-later or the Tiny Self-Hosted License Agreement.

TinyMCE 8's documentation adds the operational part: in a self-hosted environment "a license key must be provided and it must be valid. Otherwise, the editor will be disabled." GPL users set 'gpl'; commercial self-hosted use needs a commercial key. The full account is in our TinyMCE review.

For a GPL-compatible project, nothing much changed. For a closed-source SaaS product that adopted TinyMCE under MIT, upgrading became a purchasing decision.

Option 1: stay, and pay or comply

This is a legitimate answer and often the cheapest. TinyMCE's vendor-published Essential plan is $79 per month paid annually with 5,000 editor loads; your content, integration and user habits stay as they are. Compare that line item with the engineering cost of any migration below before assuming you must leave.

Option 2: another finished editor

CKEditor 5 is the like-for-like replacement: toolbar on install, first-party React, Vue and Angular integrations, HTML storage. It is lighter in our measurements — 161.2 kB gzip against TinyMCE's 393.9 kB — but its licence is the same shape, GPL-2.0-or-later or commercial, and its vendor-published Essential plan is $144 per month on annual billing.

Choose it for weight, localisation breadth or its collaboration and AI features, not to escape a licence. CKEditor 5 vs TinyMCE has the detail.

Option 3: a permissive editor with a toolbar

Quill is the permissively licensed editor in our dataset closest to TinyMCE's shape: a fixed toolbar and themes on install, mounted on a DOM element in any stack. BSD-3-Clause, 58.7 kB gzip for the default build including both themes, eight lines in our benchmark application.

The costs are real. Every React, Vue and Angular wrapper is community-maintained, and the latest quill release on npm is 2.0.3 from November 2024. For comment boxes, notes and simple article bodies that is often acceptable; for a product's core editor it is a dependency risk to weigh deliberately.

Option 4: a permissive framework, and build the interface

Tiptap (MIT, 123.3 kB gzip with StarterKit) and Lexical (MIT, 104.9 kB) remove the licence question entirely and hand you an engine with no toolbar. Tiptap has first-party React and Vue bindings and sells collaboration and AI as services; Lexical has a framework-agnostic core, a first-party React binding and no commercial tier.

The budget moves from licence fees to interface work: toolbar, link dialog, image upload, table controls. Price that honestly: a TinyMCE-equivalent feature set is a project, not an afternoon. Tiptap vs CKEditor 5 frames the same build-or-buy question.

Option 5: change the model to blocks

If TinyMCE was always a slightly awkward fit — users building documents from sections rather than typing prose — the licence change is a reasonable moment to reconsider the content model.

BlockNote gives you a Notion-style block editor with its interface included, an MPL-2.0 core usable in closed-source products, and React only; its AI and export packages are GPL-3.0 or commercial. Editor.js is Apache-2.0, framework-agnostic and saves JSON you render yourself.

Side by side

| | Licence | Interface included | Bundle (min+gzip) | Frameworks | |---|---|---|---|---| | TinyMCE | GPL-2.0-or-later or commercial | Yes | 393.9 kB | React, Vue, Angular (first-party) | | CKEditor 5 | GPL-2.0-or-later or commercial | Yes | 161.2 kB | React, Vue, Angular (first-party) | | Quill | BSD-3-Clause | Yes | 58.7 kB | Any (community wrappers) | | Tiptap | MIT | No | 123.3 kB | React, Vue (first-party) | | Lexical | MIT | No | 104.9 kB | Any core; React (first-party) | | BlockNote | MPL-2.0 core | Yes | 386.1 kB | React | | Editor.js | Apache-2.0 | Block menus; tools installed separately | 64.3 kB | Any (community wrappers) |

Bundle figures are from our bundle size benchmark; the configurations differ per library and are listed there.

Migration notes

TinyMCE to Quill, Tiptap, Lexical or CKEditor 5: TinyMCE stores HTML, and all four import HTML. The work is in elements the new schema does not know — plugin-specific markup, inline styles, custom attributes — which are silently dropped unless you add formats, extensions or nodes for them. Audit a sample of real stored content before estimating.

TinyMCE to BlockNote or Editor.js: a content conversion, not an import. Parse stored HTML into blocks, decide what happens to inline formatting inside each block, and keep the original HTML until the conversion has been verified.

Custom TinyMCE plugins are rewrites in every direction; no other editor shares its plugin API.

The whole category is on the rich-text editor comparison, with licence, bundle size and framework support side by side.

Frequently asked questions

What is the closest free alternative to TinyMCE?
Quill, if 'closest' means an editor with a toolbar on install under a permissive licence: BSD-3-Clause, 58.7 kB gzip in our measurement. Its trade-offs are community-only framework wrappers and no npm release since November 2024.
Is CKEditor 5 an escape from TinyMCE's licence?
No. CKEditor 5 is also GPL-2.0-or-later or commercial, and its GPL build displays a 'Powered by CKEditor' logo. It is an alternative on weight, price and features, not on licence.
Can I stay on TinyMCE 6 under MIT?
The 6.x releases were published under MIT, and those licence terms do not change retroactively. Staying means forgoing every feature and fix released only in 7 and 8, so treat it as a bridge rather than a plan.
Which alternative is easiest to migrate content to?
Any editor that imports HTML, because TinyMCE stores HTML: Quill, Tiptap, Lexical and CKEditor 5 all take the HTML route. Block editors such as BlockNote and Editor.js need a conversion step from HTML into blocks.

Written by the EditorStack Research Team. How we test and what we refuse to publish is on the methodology page.