TinyMCE is one of the longest-running rich text editor products on the web — a turnkey WYSIWYG with toolbar, dialogs, and dozens of plugins out of the box. It sits at the product layer; its internal model is contentEditable + DOM mutation. SpineEditor sits at the engine layer below — a different architectural slot with different concerns.
Where they sit
TinyMCE = product. A finished editor: toolbar, plugins, dialogs, themes, hosted services. The model is contentEditable + DOM event handlers.
SpineEditor = engine. A deterministic Intent → Plan → Transaction pipeline that owns state separately from the DOM. The toolbar, plugins, and hosted services are yours to design.
What TinyMCE does well
Turnkey editing experience. A complete WYSIWYG toolbar, dialogs, and styling out of the box. Works the moment you mount it.
Massive plugin catalog. Tables, images, media embeds, mentions, link checking, spell check — most commercial editor features ship as plugins.
Accessibility certified. Section 508 / WCAG 2.1 AA conformance reports published by Tiny.
Long-term stability. Two decades of releases, a well-known migration story between major versions.
State separated from the DOM. TinyMCE edits the contentEditable DOM directly; the model is the DOM. SpineEditor owns engine state independently and treats the DOM as a projection of committed state.
Explicit Plan stage. Every Intent compiles into a Plan artifact before any mutation; readable, loggable, vetoable.
Determinism contract. The same edit produces the same plan, transaction, and committed state every time.
TypeScript-first. Strict types throughout the public surface.