Report: 2024 State of Collaborative Editing

Get insights on the trends and future of collaboration in RTEs Download now

Read now

Content creation made future-ready

Rock-solid and customizable software. Premium technical support and custom development services. Everything you need is provided by a single vendor.

Build any editing solution imaginable

Provide users with their ideal editing experience, from editors similar to Google Docs and Medium, to Slack or Twitter-like applications, all within a single editing framework.

The editor comes with a well-designed UI and perfect UX, so users can easily manage media and tables as well as use advanced features, such as auto-formatting, mentions, Paste from Word or Markdown support, and the flexibility to customize and build tailored editing experiences using the CKEditor 5 Builder.

Tailored for Today’s Tech

CKEditor 5 is an ultra-modern JavaScript rich text editor with MVC architecture, custom data model and virtual DOM. It is written from scratch in TypeScript, and has an excellent bundler-agnostic setup.

Native integrations with Angular, React and Vue.js are available for your convenience. CKEditor 5 is also compatible with Electron and mobile devices (Android, iOS).

Modular, extensible & customizable

CKEditor 5 isn’t just an editor, but also a highly adaptable and universal platform for creating custom rich-text editing solutions. With a plugin-based architecture, even core functions are modular, giving you the freedom to modify, remove, or replace any plugin.

Adjusting the editor’s theme is straightforward with CSS variables, or you can integrate your own third-party UIs such as Bootstrap or React.

Get started fast with CKEditor 5 Builder

Effortlessly generate code with customizable UIs and zero configuration hassle

Build your custom editor environment by selecting from a wide array of predefined functionalities. Once configured, you can adjust the toolbar to streamline your content workflow, and integrate the custom editor into your application for enhanced efficiency.

The Ultimate Solution for Building Rich-text Editors

Collaboration features

With collaboration features, multiple users can write, comment, track changes and view revision history of their content. All in real time or non-simultaneously.

  • Track Changes

    Suggest, approve and reject any formatting or styling changes in content.

  • Revision History

    Create, view, compare and restore document versions.

  • Comments

    Allow your users to collaboratively write, review and discuss right within your application.

Import from Word

Import any amount of Word documents to CKEditor 5 (comments and text suggestions preserved) thanks to our new premium feature which is fully unique in the market.

Export to PDF and Word

Quickly generate a PDF or Word file from your editor content with preserved comments and suggestions.

Spell and grammar check

Easy to integrate, modern and customizable Proofreader with multi-language content support.

Mathtype

MathType is now integrated with CKEditor enabling users to create quality math equations.

Why developers love CKEditor 5

Extensive documentation

Covering rich-text editing framework, installation methods and complete API. We provide detailed documentation that is easy to understand - both for beginner and advanced developers

Bulletproof

Software quality is in our DNA. CKEditor 5 has 100% code coverage and our developers spend over 50% of their time on testing code and writing documentation.

Secure

With built-in content filtering and full control over allowed content you can define which elements are supported. CSP support protects your website against XSS or data injection attacks.

Long-term support

Integrate once and use for many years to come with exceptional support provided to you by a team of 50+ developers with over 20+ years of experience in WYSIWYG editing.

Why choose CKEditor 5?

300+ features, endless customization, and 20+ years supporting Fortune 500 companies. Deploy via CDN or on-premises. Get started in just 5 minutes.

CKEditor in numbers

  • Over 50 millions downloads

  • Over 100 thousands customers

  • Over 1000 APIs

  • Over 300 features

  • 100% code coverage

Trusted and approved by

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