JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 21
  • Score
    100M100P100Q82530F
  • License MIT

Self-hosted, white-labeled rich-text editor for the web. Drop-in TinyMCE replacement โ€” no API key, no external CDN, no GPL contagion.

Package Exports

  • @waveeditor/core
  • @waveeditor/core/dist/stats.html
  • @waveeditor/core/dist/waveeditor.esm.js
  • @waveeditor/core/dist/waveeditor.esm.js.map
  • @waveeditor/core/dist/waveeditor.min.css
  • @waveeditor/core/dist/waveeditor.min.js
  • @waveeditor/core/dist/waveeditor.min.js.map
  • @waveeditor/core/package.json

Readme

๐ŸŒŠ WaveEditor

A self-hosted, white-labeled rich-text editor for the web. Drop-in replacement for TinyMCE โ€” without the API key, the external CDN, or the surprise bills.

Status License Phase


โš ๏ธ Pre-alpha. Phase 0 (project bootstrap) has not started yet. The full design and phased implementation plan are complete and ready to execute โ€” see docs/phases/README.md.

What WaveEditor is

WaveEditor gives web developers a rich-text editor that is owned by the people who use it:

  • โœ… Drop-in replacement for TinyMCE โ€” public API mirrors tinymce.init({...}) so existing codebases migrate with a find-and-replace
  • โœ… Self-hosted โ€” single JS + CSS pair, no external CDN, no API key, works offline and behind firewalls
  • โœ… MIT-licensed open core โ€” no GPL contagion, no recurring fees
  • โœ… Brandable โ€” full white-label support via CSS variables; ship it under your own product name
  • โœ… Commercial-ready โ€” clean separation between free core (Phases 0โ€“3) and future paid tier (Phase 4)

Package

Published on npm as @waveeditor/core.

The unscoped waveeditor name is blocked by npm's anti-typosquatting policy (similarity to the unrelated wangeditor package), so we use the @waveeditor org scope โ€” same convention as TipTap (@tiptap/core), Lexical (@lexical/core), CKEditor 5 (@ckeditor/*). Brand identity stays "WaveEditor" everywhere except the install command.

Quick start (planned โ€” Phase 1+)

Via npm

npm install @waveeditor/core
import { WaveEditor } from '@waveeditor/core';
import '@waveeditor/core/dist/waveeditor.min.css';

WaveEditor.init({
  selector: '#editor',
  plugins: 'bold italic image link table lists',
  toolbar: 'undo redo | bold italic | link image table',
});

Via CDN (drop-in, no build step)

<link rel="stylesheet" href="https://unpkg.com/@waveeditor/core/dist/waveeditor.min.css">
<script src="https://unpkg.com/@waveeditor/core/dist/waveeditor.min.js"></script>

<textarea id="editor"></textarea>
<script>
  WaveEditor.init({
    selector: '#editor',
    plugins: 'bold italic image link table lists',
    toolbar: 'undo redo | bold italic | link image table',
  });
</script>

Identical pattern to TinyMCE. Same config string format. Just tinymce.init โ†’ WaveEditor.init.

Roadmap

Phase Theme Status Plan
P0 Project bootstrap โณ Not started phase-0.md
P1 Core formatting (bold, italic, lists, links, images, โ€ฆ) Planned phase-1.md
P2 Advanced editing (tables, fonts, colors, code blocks, โ€ฆ) Planned phase-2.md
P3 Power features (track changes, comments, mentions, slash commands, โ€ฆ) Planned phase-3.md
P4 Backend-dependent (real-time collab, AI, asset manager, โ€ฆ) Planned phase-4.md

Documentation

Doc Purpose
docs/design.md Architecture, public API, mission & vision, licensing strategy
docs/visual-design.md Complete visual language: colors, typography, components, states, dark mode
docs/mockups/ Seven interactive HTML mockups capturing every visual decision
docs/phases/ Detailed implementation plans per phase

Built on

Full third-party attributions: NOTICES.md.

Contributing

This project is pre-Phase-0 and not yet accepting external contributions. Once Phase 0 ships, see CONTRIBUTING.md for the contribution workflow.

Security

Found a vulnerability? See SECURITY.md for the responsible disclosure process.

License

MIT โ€” ยฉ 2026 Manish Patolia.

WaveEditor is built on MIT-licensed open-source components and is itself MIT-licensed. Commercial premium features (Phase 4+) may be offered under a dual-license model in the future; see docs/design.md ยง16.