Rich Text Editing.
Without the Limits.

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.

Try the Live Demo Get Started →
100% Open Source Loads from jsDelivr CDN React · Vue · Angular · Blazor
Live Demo

Try HugeRTE right here, right now

This editor is loaded directly from the jsDelivr CDN — no install required. Edit the content, try the toolbar, paste images, write code samples.

Loading…
Features

Everything you need. Nothing you don't pay for.

HugeRTE ships with a comprehensive feature set out of the box. No paywalls, no upsells, no telemetry.

30+ Plugins

Tables, images, code samples, accordions, emoji, autosave, fullscreen, search & replace, and many more — all included.

MIT Licensed

Permissive license. Use it in personal, commercial, or proprietary projects without obligations or attribution.

No API Key

Just drop it in. No account, no domain restrictions, no API keys to manage or rotate.

Customizable Toolbar

Build the toolbar that matches your product — choose buttons, group them, or render the editor inline.

Framework Wrappers

First-class integrations for React, Vue (2 & 3), Angular and Blazor — community wrappers for Rails, Laravel Nova & more.

Localized

Use any of the TinyMCE 6 community language packs. Just rename the global and import — fully bundlable.

Bundler Ready

Bundle HugeRTE into your Vite, Rollup or Webpack pipeline using ES6 imports — including skins, themes & plugins.

Battle-tested Core

Built on the proven TinyMCE 6 codebase, with HugeRTE-specific bug fixes and improvements on top.

Get started in seconds

Build with your favorite stack

Pick your framework and copy the snippet. Detailed docs and examples are linked under each one.

Drop-in via jsDelivr

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>

Install via npm / yarn / composer

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'
});

React

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>"
    />
  );
}

Vue 2 & 3

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>

Angular 17+

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>';
}

Blazor (Server & WASM)

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 →

Why HugeRTE

Forked when it mattered. Maintained for everyone.

When TinyMCE switched to a GPL-or-pay license, we forked the last MIT-licensed commit so the web stays open.

Free Forever

No paid tiers, no hidden API quotas. HugeRTE is and will remain MIT-licensed and free for all use cases.

Full TinyMCE Power

All the features of TinyMCE 6 — editor APIs, plugins, themes, skins, localization — minus the licensing strings.

Active Maintenance

Bug fixes, improvements and new features land regularly. We track upstream changes where licensing allows: for the framework integrations.

Drop-in Migration

Switching from TinyMCE? Replace tinymce with hugerte — that's it for most projects.

Privacy-respecting

No accounts, no telemetry, no remote services required. Your content never leaves your application.

Community Driven

Open development on GitHub. Issues, discussions, surveys — your input shapes the roadmap.

Plugins

30+ plugins, all included

Enable only what you need by listing them in the plugins option.

accordion advlist anchor autolink autoresize autosave charmap code codesample directionality emoticons fullscreen help image importcss insertdatetime link lists media nonbreaking pagebreak preview quickbars save searchreplace table template visualblocks visualchars wordcount
Coming from TinyMCE?

Migration takes minutes, not days

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 →
  1. Replace tinymce with hugerte in your code.
  2. Swap the tinymce package for hugerte.
  3. Replace integration packages: @tinymce/tinymce-react@hugerte/hugerte-react.
  4. Review the changelog for any prop changes.
Community

Get help, contribute, shape the roadmap

📚 Documentation

Setup, bundling, integrations, and reference for the HugeRTE editor and its framework wrappers.

Browse the docs →

💬 Discussions

Ask questions, share what you're building, and request integrations on GitHub Discussions.

Join the conversation →

🐛 Issue Tracker

Found a bug? Have a feature idea? Open an issue on the main HugeRTE repository.

Report an issue →

💖 Sponsor

HugeRTE is maintained by volunteers. Sponsor on OpenCollective to help keep it free and well-maintained.

Support on OpenCollective →

Ready to ditch the API key?

Add a script tag, install a package, or fork our integrations. HugeRTE is yours — free, MIT-licensed, no strings attached.