TinyMCE review: the familiar editor, after two licence changes
TinyMCE is a long-established WYSIWYG editor whose licence moved from MIT in version 6 to GPL-2.0-or-later in version 7, and since 8.3 to GPL-2.0-or-later or Tiny's self-hosted commercial terms, with every self-hosted TinyMCE 8 install required to set a licence key.
TL;DR
- TinyMCE is a finished WYSIWYG editor with menus, a toolbar and first-party React, Vue and Angular integrations. Its npm licence field was MIT through 6.x, GPL-2.0-or-later from 7.0.0, 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 must be given a valid licence key or the editor is disabled: 'gpl' for GPL use, a commercial key otherwise. Cloud plans start with 1,000 free editor loads a month; Essential is vendor-published at $79 per month paid annually.
- We measured tinymce 8.9.1 at 393.9 kB gzip for the core, icons, Silver theme and DOM model with no plugins, and our benchmark application needed 14 lines of code.
TinyMCE quick facts
| Type | Library |
|---|---|
| Licence | GPL-2.0-or-later OR commercial |
| First release | 2014-05 |
| Language | TypeScript |
| Frameworks | Any (framework-agnostic) |
| SSR support | Unverified |
| Bundle size (min+gzip) | 393.9 kB gzip |
| Pricing | from $79/mo |
| Self-hosted | Yes |
| White label | Unverified |
| npm weekly downloads | 1,025,945 |
| GitHub stars | 16,298 |
| Latest version | 8.9.1 |
| Last verified | 2026-09-17 |
What TinyMCE is, and who it is for
TinyMCE is the editor a great many people picture when they hear "rich-text editor": a menu bar, a formatting toolbar, and an editing area that behaves like a word processor. It installs as a complete product with first-party integrations for React, Vue and Angular, and it has been on npm since May 2014.
It suits the same products as CKEditor 5 — CMS body fields, LMS authoring, support-desk replies, internal tools — and competes with it directly; the head-to-head covers where each wins. It is the opposite of a headless framework such as Tiptap, where the toolbar is yours to build.
The reason most teams read a TinyMCE review in 2026 is not features. It is the licence.
The licence history, from the registry
The npm registry records the licence each version was published under, which makes the history checkable rather than anecdotal:
- 6.x: MIT, through 6.8.6.
- 7.0.0 (March 2024): GPL-2.0-or-later.
- 8.3.0 (December 2025) onwards: "SEE LICENSE IN license.md", where the file offers GPL-2.0-or-later or the Tiny Self-Hosted License Agreement.
TinyMCE 7 introduced a license_key option so that developers make "a conscious decision" between
the GPL and a commercial licence. TinyMCE 8 hardens it: in a self-hosted environment "a license key
must be provided and it must be valid. Otherwise, the editor will be disabled." GPL use sets
license_key: 'gpl'; commercial self-hosted use needs a commercial key.
For a closed-source product that adopted TinyMCE under MIT, upgrading past 6.x is a licensing decision, not a dependency bump. That is the problem our TinyMCE alternatives guide is written for.
Getting started
The file from our benchmark application, unedited. Fourteen lines, most of them imports: the bundling guide requires the global first, then icons, theme, model and skins.
import tinymce from 'tinymce';
import 'tinymce/icons/default/icons.min.js';
import 'tinymce/themes/silver/theme.min.js';
import 'tinymce/models/dom/model.min.js';
import 'tinymce/skins/ui/oxide/skin.js';
import 'tinymce/skins/ui/oxide/content.js';
import 'tinymce/skins/content/default/content.js';
tinymce.init({
target: document.getElementById('app'),
license_key: 'gpl',
skin_url: 'default',
content_css: 'default',
setup: (editor) => editor.on('init', () => editor.setContent('<h1>Hello editor</h1><p>Type here.</p>')),
});
TinyMCE 8.9.1 from the code above, screenshotted from our own build with the GPL key. The menu bar, toolbar and status bar are defaults; so are the "Get all features" button and the TinyMCE credit in the status bar.
What the screenshot shows matters for white-label products: the default GPL build we ran displays a "Get all features" upsell button and a TinyMCE credit. We did not verify which configuration or licence removes them, so the dataset records white-label as unverified.
There is no published time-to-editor figure for TinyMCE yet. The application ran, but on a different machine from the published time to first editor benchmark, and we do not mix timings from two machines in one table.
Strengths
Nothing to design. The menu bar, toolbar and status bar in our screenshot are defaults we did not configure. A team can ship a capable editor the day it installs one, and add plugins from there.
First-party framework integrations. @tinymce/tinymce-react, @tinymce/tinymce-vue and
@tinymce/tinymce-angular are published by the vendor under MIT.
A documented plugin model. The documentation covers writing your own plugins, so product-specific buttons and behaviours do not require forking the editor.
Localisation options. Premium language packs for paid deployments and community packs maintained through Crowdin.
A cloud option. Loading from Tiny Cloud needs no self-hosted licence key, which is a genuine simplification for teams that accept a vendor-hosted script.
Limitations
The licence is no longer permissive. GPL-2.0-or-later or commercial terms, with a mandatory key in self-hosted TinyMCE 8. MIT-era assumptions do not survive the upgrade.
The heaviest bundle we measured. 393.9 kB gzip for the core, icons, theme and model, before any plugin — heavier than CKEditor 5 at 161.2 kB and more than six times Quill at 58.7 kB. Lazy-load it on the editing route.
Paid features sit where products grow. The current TinyMCE AI plugin is "only available for paid TinyMCE subscriptions", and Suggested Edits and Revision History are priced add-ons.
Branding in the default GPL build. The upsell button and credit we saw are a problem for white-label products until you have confirmed how to remove them under your licence.
Stored content is HTML. Right for many products, wrong for block-structured content models.
Pricing
Vendor-published on the day we checked. Free: cloud-hosted, 1,000 editor loads per month, then $40 per 1,000. Essential: $79 per month paid annually, 5,000 loads, commercial licence. Professional: $145 per month paid annually, 20,000 loads. Enterprise: quoted. Self-hosting under GPL-2.0-or-later is free of licence fees. We could not read monthly-billing prices from the page, so none are recorded.
For the alternatives by licence, see CKEditor 5 vs TinyMCE, the TinyMCE alternatives guide and the rich-text editor comparison.
Who TinyMCE fits, and who it does not
Good fit
- Replacing a textarea with a familiar word-processor interface — menus, toolbar, tables — without designing any editor UI
- Products already on TinyMCE that are GPL-compatible or can budget for a commercial licence, where migrating content would cost more than the licence
- Teams that want first-party React, Vue and Angular integrations maintained by the same vendor as the editor
Poor fit
- Closed-source products still on TinyMCE 6 expecting MIT terms on upgrade, since versions 7 and 8 are GPL or commercial
- Bundle-sensitive routes: the self-hosted core, theme, model and icons measured the heaviest JavaScript in our benchmark
- Structured, block-based content models where stored HTML is a liability rather than the goal
TinyMCE against its nearest neighbours
The closest products in the dataset by category, with the facts most people open three tabs to compare. Bundle sizes marked in kilobytes are our own measurements.
| Product | Licence | Bundle | Price from | Self-hosted |
|---|---|---|---|---|
| TinyMCE | GPL-2.0-or-later OR commercial | 393.9 kB gzip | from $79/mo | Yes |
| CKEditor 5 | GPL-2.0-or-later OR commercial | 161.2 kB gzip | from $144/mo | Yes |
| Editor.js | Apache-2.0 | 64.3 kB gzip | Free (open source) | Yes |
| Quill | BSD-3-Clause | 58.7 kB gzip | Free (open source) | Yes |
Alternatives to TinyMCE
Each comparison below is a full write-up, not a feature grid: where each tool wins, and what moving between them costs.
Frequently asked questions
- Is TinyMCE still free?
- Self-hosting is free under GPL-2.0-or-later with license_key set to 'gpl', which obliges your product to comply with the GPL. Closed-source self-hosted use needs a commercial licence key. The cloud Free plan includes 1,000 editor loads per month.
- When did TinyMCE's licence change?
- According to the npm registry, the licence field reads MIT for the 6.8.x releases and GPL-2.0-or-later from 7.0.0, published in March 2024. From 8.3.0, published in December 2025, it points to a licence file offering GPL-2.0-or-later or the Tiny Self-Hosted License Agreement.
- How much does TinyMCE cost?
- Vendor-published: Essential at $79 per month and Professional at $145 per month, both paid annually, with 5,000 and 20,000 editor loads respectively; Enterprise is quoted. Monthly-billing prices were not visible in the page source we could read, so we do not quote them.
- How big is TinyMCE?
- We measured tinymce 8.9.1 at 393.9 kB gzip (1,130.2 kB raw) for the core plus the default icons, Silver theme and DOM model that the bundling guide requires, with no plugins and the skin modules excluded. That is the heaviest figure in our bundle benchmark.
- What should I use instead of TinyMCE?
- It depends on what the licence change broke. Our TinyMCE alternatives guide sorts the options into finished editors, MIT or MPL frameworks, and the BSD-licensed Quill.
Sources and verification
Last verified: . Facts on this page were checked against the sources below on the date shown next to each one.
- npm registry metadata for tinymce (first publish May 2014; licence field MIT for 6.8.x, GPL-2.0-or-later from 7.0.0, 'SEE LICENSE IN license.md' from 8.3.0; latest 8.9.1) — accessed 2026-09-17
- tinymce 8.9.1 license.md (GPL-2.0-or-later or the Tiny Self-Hosted License Agreement) — accessed 2026-09-17
- tinymce 7.0.0 license.md (GPL-2.0-or-later) — accessed 2026-09-17
- TinyMCE licence key documentation (self-hosted TinyMCE 8 requires a valid key; 'gpl' for GPL use) — accessed 2026-09-17
- TinyMCE pricing page (vendor-published Free, Essential, Professional and Enterprise plans) — accessed 2026-09-17
- Bundling TinyMCE with Vite (required icons, theme, model and skin imports) — accessed 2026-09-17
- TinyMCE AI plugin (only available for paid subscriptions) — accessed 2026-09-17
- TinyMCE UI localisation (premium and community language packs) — accessed 2026-09-17
- TinyMCE documentation: creating a plugin — accessed 2026-09-17
- npm registry metadata for @tinymce/tinymce-react, published by tinymce (also checked: tinymce-vue, tinymce-angular) — accessed 2026-09-17