How to Add Track Changes to TinyMCE Rich Text Editor (2026)

TL;DR
Adding track changes to TinyMCE means enabling Microsoft Word-style inline editing where insertions and deletions are recorded per user and can be accepted or rejected individually. TinyMCE introduced its own native option called “Suggested Edits” in version 8.0 (August 2025), but it’s a premium add-on costing $787/year. Third-party plugins like FLITE by LoopIndex offer an alternative that works across TinyMCE versions, while the old open-source NYTimes ICE plugin is effectively abandoned and not viable for production use.
What “Track Changes” Actually Means in a Web Editor
Before getting into implementation, the terminology needs to be pinned down. Developers searching for how to add track changes to TinyMCE rich text editor often conflate three separate features. One developer in a Google Groups thread captured it perfectly: “What do you mean by track changes? If you want to compare differences in versions that’s different from seeing changes when editing the html.” Another replied that they wanted “more like MS Word track changes rather than a history of what has changed.”
That distinction matters. Track changes (inline change tracking) means recording every insertion, deletion, and formatting modification at the character level. Each change is associated with a specific user identity. Reviewers can then accept or reject changes individually or in bulk, just like in Microsoft Word.
This is not the same as:
-
Revision history (also called version history), which compares entire document snapshots taken at different save points. TinyMCE’s Revision History feature captures every version of your document and lets you review edits, compare versions, and restore earlier ones. That’s useful, but it operates at the document level, not the character level.
-
Inline comments, which are contextual discussion threads anchored to specific text selections. Comments don’t modify the document content at all. They’re for conversation, not editing. If you’re evaluating that feature separately, the inline comments overview explains the distinction in more detail.
Understanding these three categories is the first step to figuring out how to add track changes to a TinyMCE rich text editor in a way that matches your actual workflow needs.
How Inline Change Tracking Works Under the Hood
Track changes in a browser-based editor works by injecting markup into the DOM. When a user types new text, the editor wraps that insertion in a styled <span> (or similar element) tagged with metadata: who made the change, when, and what type of change it was. Deletions are handled similarly, typically rendering the deleted text with a strikethrough style but keeping it in the document until someone accepts or rejects the change.
Each user’s changes are usually displayed in a different color, making it easy to see who changed what. A sidebar or toolbar provides accept/reject controls.
This sounds straightforward. It is not.
The core technical challenge is contentEditable, the browser API that makes rich text editing possible on the web. As one developer noted in a GitHub discussion about the NYTimes ICE project, “contentEditable is NOT specced and the different browsers change it around from version to version.” What works in Chrome might break in Firefox. A keyboard shortcut that produces one DOM mutation in Safari might produce a completely different one in Edge.
This is why building track changes from scratch is so difficult and why dedicated plugins exist. To give a sense of the complexity involved: in an average simple rich text editor, the Enter key alone performs over 100 different actions depending on cursor position and context. Track changes multiplies that complexity because every single action needs to be intercepted, classified, and recorded.
Track Changes vs. Revision History vs. Comments: Clearing Up TinyMCE’s Terminology
TinyMCE’s own naming conventions contribute to the confusion around how to add track changes to a TinyMCE rich text editor. Here’s how the three features map:
| Concept | TinyMCE’s Name | What It Does | Granularity |
|---|---|---|---|
| Track changes | Suggested Edits | Records inline insertions, deletions, and formatting changes per user | Character-level |
| Version history | Revision History | Stores document snapshots, allows comparison and restore | Document-level |
| Inline discussions | Comments | Anchors threaded conversations to text selections | Text selection-level |
The naming mismatch is a real problem. Before August 2025, if you searched TinyMCE’s documentation for “track changes,” you’d find Revision History content, which isn’t what most developers mean. Now that Suggested Edits exists, the terminology is clearer within TinyMCE’s ecosystem, but external searches still surface Revision History pages as the top results.
If your workflow involves editors reviewing and approving specific text modifications made by writers, you need Suggested Edits (track changes), not Revision History. If you need to roll back an entire document to a previous state, Revision History is the right tool. Many content management systems benefit from both, plus inline comments for TinyMCE to handle discussion threads alongside edits.
Four Ways to Add Track Changes to TinyMCE
Option A: TinyMCE Suggested Edits (Native Premium Plugin)
TinyMCE’s Suggested Edits plugin launched in version 8.0 in August 2025. It was described as one of the most requested collaboration features in TinyMCE’s history, and it finally gives TinyMCE a native answer to the “how do I get Word-style track changes” question.
How it works: Suggested Edits maintains a JSON-based model of unreviewed edits that keeps the document state and edit metadata synchronized. It integrates with TinyMCE’s User Lookup API for user management, so each change is attributed to a specific author. The plugin is API-driven, meaning you can programmatically toggle review mode and restrict permissions based on user roles.
Key limitations:
- Requires TinyMCE 8 or later. If you’re on TinyMCE 5, 6, or 7, you’ll need to upgrade first.
- It’s a premium add-on priced at approximately $787/year, on top of TinyMCE’s base plan (which is usage-based by editor loads).
- Asynchronous only. TinyMCE retired its Real-time Collaboration (RTC) plugin on December 31, 2023, so there’s no real-time co-editing option. Suggested Edits works for workflows where users edit sequentially, not simultaneously.
Best for: Teams already on TinyMCE 8 with budget for premium add-ons who want a vendor-maintained, fully integrated solution.
Option B: Third-Party Plugin (LoopIndex FLITE)
FLITE is a track changes plugin for TinyMCE built by LoopIndex. It tracks every text modification, capturing additions, deletions, and adjustments made by multiple users, with each user’s changes displayed in different colors.
How it works: FLITE integrates directly into TinyMCE as a plugin with a rich API that supports customization. It offers TypeScript typings for developer convenience and works across current TinyMCE versions without requiring a jump to the latest major release.
Pricing: Starts at $500/year for up to 100 monthly active users, scaling to $1,500/year (up to 500 MAU) and $2,500/year (up to 1,000 MAU). You can review the full pricing breakdown for details. This MAU-based model differs from TinyMCE’s editor-load pricing, which can be significant for high-traffic applications.
Key advantages:
- Works across TinyMCE versions, not just version 8+.
- Also supports Froala and CKEditor 4, so if your platform uses multiple editors (or might switch editors later), the same plugin works everywhere.
- Longest-running dedicated track changes solution for TinyMCE, predating TinyMCE’s own native option by years.
Best for: Teams on any TinyMCE version who want a dedicated, vendor-maintained track changes solution without upgrading to TinyMCE 8 or paying for TinyMCE’s premium tier.
Option C: NYTimes ICE (Open Source, Deprecated)
ICE was a track changes implementation built in JavaScript by the CMS Group at The New York Times for anything that is contentEditable on the web. It was the pioneering open-source project in this space.
Why you shouldn’t use it today: The maintainer stated publicly: “I haven’t worked on a project that has used ice in well over three years which has made it hard to maintain this library. I’m very close to marking this project as deprecated/abandoned.” Browser support was limited to Firefox 5+, WebKit browsers, and minimal IE8+ support, all of which is outdated. More critically, ICE only works with TinyMCE 3. A GitHub issue asking about TinyMCE 5 compatibility went unanswered.
ICE matters historically because it proved that browser-based track changes was possible and influenced later projects. LoopIndex’s CKEditor track changes plugin was originally based on the ICE foundation, evolving from that starting point as the original project was abandoned. But for anyone evaluating how to add track changes to TinyMCE rich text editor instances today, ICE is off the table.
Option D: Build It Yourself
The most control-maximizing option is building custom track changes functionality from scratch. Some teams consider this when existing solutions don’t fit their exact requirements, or when they want to avoid ongoing license fees.
The reality check: Rich text editors are one of the highest-risk areas for both cost and development time overruns. Building core editing features with cross-browser compatibility can take 6 to 9 months. Factor in security updates, bug fixes, accessibility improvements, and feature upgrades, and the total cost of building a custom editor with track changes can reach $120K to $200K or more over three years.
The contentEditable specification problem mentioned earlier doesn’t go away just because you’re building in-house. You’ll be fighting the same browser inconsistencies that caused the NYTimes ICE project to stall. Unless you have a team of engineers with deep DOM manipulation experience and a budget to maintain the code indefinitely, this path rarely makes sense.
Best for: Organizations with very specific requirements that no existing plugin can meet, and the engineering resources to sustain long-term maintenance.
Comparison Table: Track Changes Options for TinyMCE
| Factor | TinyMCE Suggested Edits | LoopIndex FLITE | NYTimes ICE | Custom Build |
|---|---|---|---|---|
| Type | Native premium plugin | Third-party plugin | Open source | In-house |
| Annual cost | ~$787 + base plan | $500 to $2,500 (by MAU) | Free | $120K to $200K+ over 3 years |
| Tracks insertions/deletions | Yes | Yes | Yes | Varies |
| Tracks formatting changes | Yes | Coming soon | No | Varies |
| Multi-user attribution | Yes | Yes | Yes | Varies |
| TinyMCE version support | 8+ only | Current versions | TinyMCE 3 only | Any |
| Multi-editor support | TinyMCE only | TinyMCE, Froala, CKEditor 4 | Editor-agnostic (in theory) | Whatever you build |
| Maintenance | Vendor-maintained | Vendor-maintained | Abandoned | Self-maintained |
| Real-time collaboration | No (async only) | No (async) | No | Possible but expensive |
Key Factors When Choosing an Approach
TinyMCE Version Compatibility
This is the first filter. If you’re running TinyMCE 5, 6, or 7 and can’t upgrade to version 8 right now, TinyMCE’s native Suggested Edits plugin is not an option. A third-party plugin becomes the practical path. Check which TinyMCE versions your chosen solution actively supports before committing.
Asynchronous vs. Real-Time Needs
TinyMCE does not offer real-time collaboration. Its RTC plugin was retired at the end of 2023. Both TinyMCE Suggested Edits and third-party plugins like FLITE work asynchronously: one user makes changes, another reviews them later. For most content review workflows (editorial, legal, compliance), async track changes is exactly what’s needed. If you truly need Google Docs-style simultaneous editing, you’ll need a different editor entirely.
Pricing Model
TinyMCE charges by editor loads for its base plan, then adds the Suggested Edits premium on top. LoopIndex FLITE charges by monthly active users. A custom build trades license fees for engineering salaries. The right model depends on your usage patterns. An application with thousands of page views but only 50 people actually editing content will see very different economics across these models.
Multi-Editor Portability
Some organizations use different editors in different products, or anticipate switching editors in the future. A plugin that supports TinyMCE, Froala, and CKEditor 4 provides insurance against editor lock-in. To see which teams benefit most from this kind of flexibility, consider whether your platform might evolve beyond a single editor.
API Depth
Both TinyMCE Suggested Edits and FLITE offer APIs for controlling track changes behavior programmatically. Consider what you need: toggling review mode per user role, extracting change metadata for audit logs, customizing the accept/reject UI, or integrating with existing approval workflows. The depth of the API determines how much you can customize without forking the code.
Step-by-Step: Adding Track Changes to TinyMCE (General Workflow)
Regardless of which option you choose, the general workflow for adding track changes to a TinyMCE rich text editor follows these steps:
- Choose your track changes solution based on the factors above.
- Install the plugin. For TinyMCE Suggested Edits, this means upgrading to TinyMCE 8 and enabling the premium plugin through your TinyMCE configuration. For a third-party plugin like FLITE, you install the plugin files and register them in your TinyMCE
initconfiguration. - Configure user identity. Track changes needs to know who’s making each edit. Both native and third-party solutions require you to pass user information (at minimum, a user ID and display name) when the editor initializes.
- Set up the accept/reject workflow. Decide which users can accept or reject changes (typically editors or admins) and which can only suggest edits (typically authors or contributors). Configure permissions accordingly through the plugin’s API.
- Handle persistence. The tracked changes markup lives in the editor’s HTML content. When you save the document, you save that markup along with it. When you load the document later, the pending changes reappear for review.
- Test across browsers. Given the
contentEditableinconsistencies across browsers, thorough cross-browser testing is essential.
For implementation specifics, refer to the documentation of whichever solution you select. TinyMCE provides setup guides for Suggested Edits on their documentation site. LoopIndex provides integration documentation for their TinyMCE track changes plugin as well.
Frequently Asked Questions
Does TinyMCE have built-in track changes?
Yes, since August 2025. TinyMCE 8.0 introduced the Suggested Edits plugin, which provides native inline change tracking. It’s a premium add-on priced at approximately $787/year, on top of TinyMCE’s base plan pricing. If you’re on an earlier version of TinyMCE, you’ll need either to upgrade or use a third-party plugin.
Can I use the NYTimes ICE plugin for track changes in TinyMCE?
Not in any practical sense. ICE only supports TinyMCE 3, and the project’s maintainer has signaled it’s effectively abandoned. The codebase hasn’t been actively maintained since roughly 2016, and a GitHub issue asking about TinyMCE 5 support was never answered. For production use, look at TinyMCE’s native Suggested Edits or a third-party plugin like FLITE.
What’s the difference between Revision History and track changes in TinyMCE?
Revision History compares entire document snapshots at different save points. Track changes (called “Suggested Edits” in TinyMCE) records individual insertions, deletions, and formatting changes at the character level, attributing each to a specific user. One shows you how the document looked at two different points in time. The other shows you exactly what changed, who changed it, and lets you accept or reject each modification.
Do I need real-time collaboration for track changes?
No. Most editorial review workflows are asynchronous: a writer submits changes, an editor reviews them later. TinyMCE’s Suggested Edits and third-party plugins like FLITE both work this way. Real-time collaboration (multiple users editing simultaneously) is a separate, more complex feature that TinyMCE no longer supports since retiring its RTC plugin in December 2023.
How much does it cost to add track changes to TinyMCE?
It depends on the path. TinyMCE’s native Suggested Edits costs ~$787/year as a premium add-on, plus the base TinyMCE plan. LoopIndex FLITE starts at $500/year for up to 100 monthly active users. Building it yourself can run $120K to $200K+ over three years when you account for engineering time and ongoing maintenance. Check the LoopIndex pricing page for current third-party plugin rates.
Can I use track changes across multiple editors, not just TinyMCE?
Third-party plugins can offer this. FLITE, for example, supports TinyMCE, Froala, and CKEditor 4. TinyMCE’s native Suggested Edits only works within TinyMCE. If your platform uses multiple editors or you’re considering switching editors down the road, a multi-editor plugin avoids rewriting your collaboration features.
Is track changes in TinyMCE accessible?
Both TinyMCE’s native plugin and well-built third-party plugins aim to support accessibility standards, but the specifics vary by implementation. Test with screen readers and keyboard navigation in your specific configuration. Accessibility in rich text editors is an area where custom builds often fall short because it requires deliberate, ongoing effort.
Making the Decision
Adding track changes to a TinyMCE rich text editor is a solved problem, but the right solution depends on your TinyMCE version, budget, and long-term platform strategy. If you’re already on TinyMCE 8 and comfortable with premium pricing, Suggested Edits is the integrated option. If you need version flexibility, multi-editor support, or a different pricing model, a third-party plugin fills that gap. Building from scratch only makes sense in rare cases where no existing solution meets highly specific requirements.
Whatever you choose, the key is getting the terminology right first. Track changes means inline, character-level edit tracking with accept/reject workflows. That’s distinct from revision history and distinct from comments. Once that’s clear, the implementation path becomes straightforward.
If you have questions about adding track changes to your TinyMCE integration, get in touch with the LoopIndex team to discuss your specific setup.