Executable migration guide

Migrate from Froala to RichTextEditor

Map common configuration and transfer real document content with the package adapter, while keeping unsupported features visible for review.

Install and run
import { createMigrationReport, migrateConfig, migrateEditor } from
  "@richscripts/richtexteditor/migration";

const plan = migrateConfig("froala", legacyConfig);
const result = migrateEditor("froala", legacyEditor, rte);
console.table(result.warnings);

Content handoff

editor.html.get() is the source API. Froala HTML is transferred directly through the target editor’s normal content pipeline.

Configuration result

migrateConfig() returns target config, mapped commands, unmapped items and warnings. Review the report before replacing production initialization.

Automated coverage

  • Maps toolbarButtons, placeholderText, dimensions and character limit.
  • Reads a live instance through html.get().
  • Preserves HTML rather than attempting a lossy intermediate model.

Manual review remains

  • Custom plugins and popup behavior require manual mapping.
  • CRDT collaboration and comment records are not embedded in ordinary HTML.
Cutover gate

Generate one migration readiness report

createMigrationReport() combines configuration and content findings into mapped commands, warnings, blockers, converted HTML, and a stable manual-review checklist. Use readyForCutover as a CI gate for known automated blockers—not as a substitute for testing real production documents.

const report = createMigrationReport("froala", {
  config: legacyConfig,
  content: editor.html.get()
});

console.table(report.blockers);
console.table(report.manualReview);
if (!report.readyForCutover) process.exitCode = 1;

Acceptance checklist

  1. Run the adapter on repository fixtures and representative production documents.
  2. Review every warning and unmapped toolbar item.
  3. Compare saved HTML—not only rendered appearance.
  4. Rebuild custom commands, uploads, permissions and collaboration data explicitly.
  5. Test undo, paste, keyboard, mobile and assistive-technology workflows before cutover.