Between January and September 2026, I led the upgrade of an editorial application’s rich-text editor from CKEditor 5 v26 to v47.3: about 55 in-house plugins, 53 sub-PRs and 683 files. Here is what we learned, from the bare-editor strategy to the bugs only real typing revealed, the AI tooling that made it repeatable, and the two CKEditor issues it led to.
At work I’m running a CKEditor 5 migration from v26 to v47 across some twenty in-house plugins. Instead of tracking it all by hand, I wrote ckeditor_audit: a read-only MCP server that sorts every plugin into four migration statuses, flags what’s live in production, searches the code with ripgrep + ast-grep, and cuts the AI token bill by 80 to 95%.


