HugeRTE is a free, MIT-licensed, open-source WYSIWYG editor — forked from the last MIT version of TinyMCE. Packed with features, beautifully designed for modern web apps, and free forever.
This editor is loaded directly from the jsDelivr CDN — no install required. Edit the content, try the toolbar, paste images, write code samples.
HugeRTE ships with a comprehensive feature set out of the box. No paywalls, no upsells, no telemetry.
Tables, images, code samples, accordions, emoji, autosave, fullscreen, search & replace, and many more — all included.
Permissive license. Use it in personal, commercial, or proprietary projects without obligations or attribution.
Just drop it in. No account, no domain restrictions, no API keys to manage or rotate.
Build the toolbar that matches your product — choose buttons, group them, or render the editor inline.
First-class integrations for React, Vue (2 & 3), Angular and Blazor — community wrappers for Rails, Laravel Nova & more.
Use any of the TinyMCE 6 community language packs. Just rename the global and import — fully bundlable.
Bundle HugeRTE into your Vite, Rollup or Webpack pipeline using ES6 imports — including skins, themes & plugins.
Built on the proven TinyMCE 6 codebase, with HugeRTE-specific bug fixes and improvements on top.
Pick your framework and copy the snippet. Detailed docs and examples are linked under each one.
The fastest way to get HugeRTE running. No bundler, no install — just a script tag.
HTML<textarea id="editor"></textarea>
<script src="https://cdn.jsdelivr.net/npm/hugerte@1/hugerte.min.js"></script>
<script>
hugerte.init({
selector: '#editor',
plugins: 'lists link image table code emoticons fullscreen',
toolbar: 'undo redo | bold italic | bullist numlist | link image | code'
});
</script>
Self-host HugeRTE or bundle it directly into your application code.
Shell# npm
npm install hugerte
# yarn
yarn add hugerte
# composer (PHP)
composer require hugerte/hugerte
JS (ESM)import hugerte from 'hugerte';
import 'hugerte/models/dom';
import 'hugerte/themes/silver';
import 'hugerte/icons/default';
import 'hugerte/skins/ui/oxide/skin.js';
import 'hugerte/plugins/lists';
hugerte.init({
selector: '#editor',
plugins: 'lists',
skin_url: 'default',
content_css: 'default'
});
A native React wrapper. Loads HugeRTE from the CDN by default — or use your own bundled copy.
Shellnpm install @hugerte/hugerte-react
JSXimport { Editor } from '@hugerte/hugerte-react';
export default function App() {
return (
<Editor
init={{
height: 500,
menubar: false,
plugins: ['lists', 'link', 'image', 'code'],
toolbar: 'undo redo | bold italic | bullist numlist | link image | code'
}}
initialValue="<p>Hello from HugeRTE!</p>"
/>
);
}
A drop-in component supporting v-model, both Vue 2 and Vue 3 are supported.
Shellnpm install @hugerte/hugerte-vue
Vue SFC<template>
<Editor
v-model="content"
:init="{
height: 500,
plugins: 'lists link image code',
toolbar: 'undo redo | bold italic | bullist numlist | link image | code'
}"
/>
</template>
<script setup>
import Editor from '@hugerte/hugerte-vue';
import { ref } from 'vue';
const content = ref('<p>Hello from HugeRTE!</p>');
</script>
Native Angular integration with full support for Reactive Forms, ngModel, and event binding.
Shellnpm install @hugerte/hugerte-angular
TypeScriptimport { Component } from '@angular/core';
import { EditorComponent } from '@hugerte/hugerte-angular';
@Component({
selector: 'app-root',
standalone: true,
imports: [EditorComponent],
template: `
<editor
[init]="{
height: 500,
plugins: 'lists link image code',
toolbar: 'undo redo | bold italic | bullist numlist | link image | code'
}"
[(ngModel)]="content"
></editor>
`
})
export class AppComponent {
content = '<p>Hello from HugeRTE!</p>';
}
First-class support for Blazor WebAssembly and Blazor Server with C# bindings, distributed via NuGet.
Shelldotnet add package HugeRTE.Blazor
Razor@using HugeRTE.Blazor
<Editor
Conf="@(new Dictionary<string, object>
{
{ "height", 500 },
{ "menubar", false },
{ "plugins", "lists link image code" },
{ "toolbar", "undo redo | bold italic | bullist numlist | link image | code" }
})"
@bind-Value="content"
/>
@code {
private string content = "<p>Hello from HugeRTE!</p>";
}
Looking for Svelte, jQuery, Rails, or Laravel Nova? See community integrations →
When TinyMCE switched to a GPL-or-pay license, we forked the last MIT-licensed commit so the web stays open.
No paid tiers, no hidden API quotas. HugeRTE is and will remain MIT-licensed and free for all use cases.
All the features of TinyMCE 6 — editor APIs, plugins, themes, skins, localization — minus the licensing strings.
Bug fixes, improvements and new features land regularly. We track upstream changes where licensing allows: for the framework integrations.
Switching from TinyMCE? Replace tinymce with hugerte — that's it for most projects.
No accounts, no telemetry, no remote services required. Your content never leaves your application.
Open development on GitHub. Issues, discussions, surveys — your input shapes the roadmap.
Enable only what you need by listing them in the plugins option.
Most projects migrate by doing a global replace and updating their package.json. HugeRTE's API is fully compatible with TinyMCE 6.
Read the Migration Guide →tinymce with hugerte in your code.tinymce package for hugerte.@tinymce/tinymce-react → @hugerte/hugerte-react.Setup, bundling, integrations, and reference for the HugeRTE editor and its framework wrappers.
Browse the docs →Ask questions, share what you're building, and request integrations on GitHub Discussions.
Join the conversation →Found a bug? Have a feature idea? Open an issue on the main HugeRTE repository.
Report an issue →HugeRTE is maintained by volunteers. Sponsor on OpenCollective to help keep it free and well-maintained.
Support on OpenCollective →Add a script tag, install a package, or fork our integrations. HugeRTE is yours — free, MIT-licensed, no strings attached.