CKEditor 5 migration from v26 to v47.3: lessons learned from the field

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.

Continue Reading →

CKEditor 5 drag and drop: external block drops split paragraphs — root cause, workaround and fix proposal

Dragging a block object into CKEditor 5 from outside the editor shows an inline caret and splits the paragraph. Here is the root cause (a private _blockMode flag), a working workaround, a live StackBlitz demo, and the fix I proposed upstream in issue #20247.

Continue Reading →