CKEditor 5 v37.0.0 – officially a TypeScript rich text editor

Often releases are full of lots of small improvements, but the release of CKEditor v37.0.0 completes our months-long effort to migrate CKEditor to TypeScript. It also includes a feature update to the Comments plugin, with the addition of Archive functionality. Read on to find out more….

# TypeScript migration complete

Let’s start with the exciting news! After months of rewriting the entire codebase, CKEditor 5 is officially a TypeScript rich text editor – now providing official typings for all its packages. Best of all, the TypeScript migration doesn’t cause any breaking changes and is seamless for JavaScript projects.

# What are the benefits of a TypeScript editor?

The key benefit of being a TypeScript editor is that it provides an improved developer experience (DX) by making it easier to write type-safe code, better code completion and error checking in IDEs. These changes improve the overall code quality of CKEditor – giving it greater stability and lifting its performance.

For any developer who customizes the CKEditor code, the change to Typescript makes the CKEditor latest version:

  • Simpler to write better, more reliable code
  • Easier to maintain the code, especially when it comes to larger, longer, and more complex projects.

These DX improvements are made possible by an additional safety layer provided by the compiler, and an IDE that suggests types and autocompletes.

# Changes to expect for developers

While CKEditor remains unchanged for content authors, for professional developers and the community there are some changes worth mentioning:

  • You can keep using CKEditor 5 in JavaScript
  • Your custom plugins don’t need to be updated, unless you plan to move them to TypeScript
  • Documentation is available for both JavaScript and TypeScript
  • API documentation has actual and comprehensive TypeScript types

If you’d like to read more about TypeScript support for CKEditor latest version, refer to TypeScript Support or CKEditor 5 v37.0.0 update guide in our documentation.

# Comments archive – feature update

The CKEditor 5 v37.0.0 release also contains a feature update to the Comments plugin. This new ‘archive’ functionality allows you to archive (or store/cache) the comments made, and takes the editor one step closer to being the ultimate collaborative rich text editor.

To remind you, before v37.0.0, it wasn’t possible to archive a comment or a comment thread, instead you had to permanently remove them, which led to the loss of (sometimes important) historical data. With this update, users can now archive comments – while still being able to view and restore those archived comments via the toolbar.

In CKEditor 5, you can now archive comments as well as view and restore archived comments
In CKEditor 5, you can now archive comments as well as view and restore archived comments

# Multi-root editor – progress update

Although full-blown multi-root editor support is still a work in progress, there are some improvements to report. In the CKEditor 5 v37.0.0 release, an official multi-root editor type and a new multi-root editor build were introduced.

Additionally, there are fundamental improvements which make the multi-root editor more flexible, making it possible for developers to build such instances that allows users to:

  • Add or remove editing fields in your application in a dynamic fashion (i.e. after the editor was initialized), without the need to create additional editor instances.
  • Use root attributes to store additional metadata related to roots (editable fields) to make it easier to further customize the editing experience according to your needs.
A showcase of a dynamic multi-root editor setup.
A showcase of a dynamic multi-root editor setup.

# What’s next for CKEditor latest version?

Following CKEditor 5 v37.0.0, a newer version, v37.1.0 was also released. This version introduces the exciting Productivity Pack, that includes five new Premium plugins:

  1. Templates
  2. Slash Commands
  3. Format Painter
  4. Document Outline
  5. Table of Contents

If you’d like to learn more about the new Productivity Pack, please contact us.

# Breaking changes and other improvements

With Node.js v14 reaching the end of its long term support on April 30th 2023, the minimum required Node version has been upgraded to v16.

To ensure a smooth upgrade, please read the Update to CKEditor 5 v37.0.0 guide before updating your files. To see the full list of breaking changes as well as improvements, please refer to our release notes.

# Download

You can download CKEditor 5 builds from the CDN, npm or as zip packages. Read more in the Installation guides.

Important
  • Due to an invalid version of the ckeditor5-collaboration dependency in some v37.0.0 packages, a follow-up v37.0.1 has been released.
  • The v37.1.0 has also been released and contains several bug fixes and a new set of Premium features.

# License

CKEditor 5 is available under Open Source and Commercial licenses. You can find all the details on our license page.

# Reporting issues and contributing

You can report all issues for any of the CKEditor 5 packages in the CKEditor 5 repository. Read more in the Reporting issues guide.

# Support

The CKEditor 5 documentation is constantly growing and regularly updated. Community support is available through Stack Overflow. Read more in the Getting support section.

Related posts

Subscribe to our newsletter

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

Thanks for subscribing!

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

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.

piAId = '1019062'; piCId = '3317'; piHostname = 'info.ckeditor.com'; (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })();(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) });