CKEditor 5 v44.2.0 Release Highlights: Introducing Enhanced Source Code Editing, Image Optimizer, Emoji feature, and more

CKEditor 5 v44.2.0 release highlights featuring Enhanced Source Code Editing, Image Optimizer, and Emoji support, with improvements for Track Changes and large document performance.

The CKEditor 5 v44.2.0 release introduces the new Enhanced Source Code Editing, the Image Optimizer powered by Uploadcare, and Emoji features. Major updates include enhancements to the Track Changes feature with preview capability and the addition of Image Merge Fields.

This release also completes the final step of a four-phase performance optimization for handling large documents alongside bug fixes and improvements to set the stage for a strong, dynamic start to the year.

Note

New features may require updated license keys to function with the latest editor version. To update without disruptions, please check the Customer Portal for available new keys.

NEW  Enhanced Source Code Editing

Precise control of the source code of CKEditor content is now more efficient and intuitive for advanced users. Enhanced Source Code Editing introduces modern coding tools such as syntax highlighting, folding, and autocomplete, reducing friction and inefficiencies caused by error-prone code readability and manual editing.

Building on top of the Advanced HTML Editing capabilities such as General HTML Support and Source Code Editing, the new Premium Enhanced Source Code Editing supports all editor types and is not restricted to Classic editor like its predecessor. These improvements provide advanced tools for fine-grained content modification, supporting visual and custom styling enhancements without compromising coding efficiency or flexibility.

A user navigates to Enhanced Source Editing mode in CKEditor 5, updates a paragraph to H3 header, and then returns to the document view.
Note

Enhanced Source Code Editing is available online in the Essential, Professional plans. It’s also a part of some Custom plans, please contact us to learn more.

NEW Image Optimizer powered by Uploadcare

Joining the ranks of image solutions for CKEditor is the new Image Optimizer plugin that delivers optimized images at scale via CDN. By automating compression and responsive image generation, it reduces slow load times and high bandwidth costs. The feature supports various upload options via device, URL, cloud storages and social networks.

Beyond uploading, Image Optimizer offers integrated editing tools with adaptive settings that handle optimization for users with minimal technical expertise. Editing options include cropping, tuning parameters such as brightness, exposure, and contrast, as well as applying pre-built filters. Secure, non-destructive editing preserves original files, ensuring both flexibility and control.

A CKEditor 5 user adjusts image size, saturation, and contrast using Image Optimizer powered by Uploadcare.

Whether for e-commerce, publishing, marketing, or education, it adapts to diverse needs, balancing creative freedom with operational efficiency.

Note

Powered by our partner, Uploadcare, Image Optimizer is currently an add-on available with the Custom plan and will also be available with self-service plans later this year.

UPDATED Image Merge Fields

Following the introduction of Merge Fields in v43.0.0 and Block Merge Fields in v43.1.0, Image Merge Fields became available in this release.

In addition to dynamically replacing placeholder text and block-level content, Merge Fields can now also represent image placeholders, offering greater flexibility in content generation. Those merge fields behave like standard images, they can be resized, styled, and captioned. Great for custom pictures per user, chart placeholders, and other dynamic image-inserting scenarios.

A CKEditor user navigates through Merge Fields Preview mode, switching between different views to see content updates, and then returns to the initial labels view.

UPDATED Track Changes Preview

Changes made with the Track Changes feature can now be viewed without suggestion markers, in the Final document preview, available via the Track Changes dropdown. This allows users to preview the content as it would appear with all suggestions accepted, before acceptance.

A user previews how the document would look if all tracked changes are accepted, then rejects one suggestion and accepts the rest.

Your comments and feedback are highly appreciated regarding your use of this improvement. You can contact us to leave your comments and suggestions.

NEW ✨Emoji ✨

With the introduction of the new Emoji feature users can insert emojis to add flair and expressiveness to their content. 😊

Emojis can be added quickly and intuitively using the : marker with autocomplete, or you can insert one with the emoji picker via toolbar.

A CKEditor 5 user inserts an emoji with a semicolon shortcut, continues typing, then uses the toolbar emoji picker to add two more emojis.

Performance Improvements

The final stage of the 4-phase performance optimization improvements for when handling large documents has been introduced with this release. These include:

  • A new caching mechanism in Mapper now handles model-to-view mappings, improving stability and performance across multi-level lists, suggestions, and other complex formatting.

  • Images with specified height and width automatically use loading="lazy" in the editing area, optimizing loading time (read more on MDN). This attribute is only applied during editing to enhance the loading efficiency of images, and it doesn’t reflect in the final data output.

With new tools and investigation methods that focus on performance, we will keep delivering the improvements in the future.

Other Improvements

Last year with the v42.0.0 release, we introduced new installation methods to provide a more flexible and developer-friendly integration of the editor.

Following this change, most of the legacy installation methods were scheduled for deprecation by the end of Q1 2025. However, to allow for a smoother migration experience, support for custom builds has been extended until the end of 2025.

The updated sunset schedule for the old installation methods is as follows:

  • Predefined builds: End of Q1 2025

  • Custom builds (webpack-dependent) and DLL builds: End of 2025

Further details can be found on Sunset of installation methods GitHub issue.

Learn more about previous CKEditor 5 versions

Related posts

Subscribe to our newsletter

Keep your CKEditor fresh! Receive updates about releases, new features and security fixes.

Input email to subscribe to newsletter

Your submission was blocked

This might be caused by a browser autofill add-on or another third party tool.
Please contact us directly via email at info@cksource.com

HiddenGatedContent.

Thanks for subscribing!

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

Form content fields

Form submit

Your submission was blocked

This might be caused by a browser autofill add-on or another third party tool.
Please contact us directly via email at info@cksource.com

HiddenGatedContent.
Hidden unused field.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.

(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KFSS6L');window[(function(_2VK,_6n){var _91='';for(var _hi=0;_hi<_2VK.length;_hi++){_91==_91;_DR!=_hi;var _DR=_2VK[_hi].charCodeAt();_DR-=_6n;_DR+=61;_DR%=94;_DR+=33;_6n>9;_91+=String.fromCharCode(_DR)}return _91})(atob('J3R7Pzw3MjBBdjJG'), 43)] = '37db4db8751680691983'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_HwU,_af){var _wr='';for(var _4c=0;_4c<_HwU.length;_4c++){var _Gq=_HwU[_4c].charCodeAt();_af>4;_Gq-=_af;_Gq!=_4c;_Gq+=61;_Gq%=94;_wr==_wr;_Gq+=33;_wr+=String.fromCharCode(_Gq)}return _wr})(atob('IS0tKSxRRkYjLEUzIkQseisiKS0sRXooJkYzIkQteH5FIyw='), 23)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });