How CKEditor cut support tickets by 97% and saved Flexum months of development.

View all case studies

All information is correct as of the original time of publishing.




Software development


Lviv, Ukraine (Global)

Myron Mavko

CKEditor 5 offers a solid architecture with high-quality source code and a flexible approach. This makes the editor highly customizable, allowing you to implement whatever you need.

Myron Mavko

CEO, Flexum



less support tickets

Saved months of custom development work

Customizable editor to suit a range of clients

Leading-edge collaborative editing features

Stable WYSIWYG, suited to modern tech stacks

Professional support and documentation

The challenge

Build reliable apps featuring a modern rich text editor

Flexum is a software development agency that designs, builds and supports custom apps and products for clients all over the world. They have delivered all kinds of software to a broad range of clients – from startups to established brands. Regardless of their size, the goal of every project is to always deliver a stable solution on time and within budget.

However, when it comes to text editing, clients and users now have higher expectations than they used to. “Previously, we were accustomed to simple text formatting options like italics, bold, and inserting links,” says Flexum co-founder and CEO, Myron Mavko. “We now deal with interactive and multimedia content, complex layouts, and real-time collaboration. Building these experiences requires expertise and careful implementation.”

Building their own custom rich text editor from scratch simply wasn’t within the scope or budget of any single project.

Flexum needed a rich text editor that was:

  • Designed for collaborative editing
  • Ready for multimedia uploads and complex layouts
  • Modular and infinitely customizable
  • Stable and suitable for modern tech stacks
  • Well documented with professional support

To satisfy clients who wanted a more modern, collaborative editing experience like Google Docs in their apps, Myron researched the major rich text editors. He found there was only one that satisfied all his criteria. “CKEditor 5 was the only option offering a complete solution.”

CKEditor 5 proved to be a comprehensive and reliable solution. Its architecture, source code quality, and documentation were impressive.

The solution

A customizable WYSIWYG editor with collaboration built in

When a client needs a modern rich text editor in their project, Flexum now turns to CKEditor 5. Modular plugins mean the team can configure the editor with the exact features needed for the project – there’s no fluff. CKEditor 5’s limitless customization options also extend to the UI, so it can fit the look and feel of each client’s brand.

After using CKEditor 5 for one project, it was the obvious choice for all future projects. “It was the ideal solution from our perspective. It’s become our number one choice, and we saw no reason not to use it,” says Myron.

Different projects require different functionality, so Flexum has become familiar with a wide range of CKEditor 5 plugins. When asked to name a favorite, Myron chooses a handful, including Premium real-time collaboration features like Track Changes, Comments and Revision History. “We also really appreciate the set of plugins related to tables – they’re very extensive and flexible.”

What we provided

A modular WYSIWYG editor designed for modern tech stacks

Comments (Premium)

Track Changes (Premium)

Revision History (Premium)

Media Embed


The result

Months of custom development work saved

Myron says that building a solution like CKEditor 5 from scratch would have been a huge undertaking for Flexum. “It would definitely have taken months,” he says. - Building a modular, collaboration-first rich text editor is a big undertaking. “It’s tons of work, and after implementing it, you need to get it stable. So that also adds months of testing and bug fixing and stabilization,” says Myron. And that amount of development time isn’t justifiable for most clients.

Flexum’s clients – and their users – love CKEditor 5, too. “Despite having many users on the platform, we’ve had almost no complaints,” says Myron. “After addressing a few initial issues, we stopped receiving any complaints, questions, or bug reports. This is all thanks to the exceptional code base and the core library.”

With results like that, Myron and the team are looking forward to building on their “extensive experience with CKEditor” in future projects.

Everything is already implemented and thoroughly tested, ensuring a high-quality solution. To achieve that level of quality by building it ourselves would require significant time and effort.


Find out what CKEditor can do for you

Trusted and approved by

We use cookies and other technologies to provide you with a better user experience.

Learn more about cookies policy

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) });