If you are integrating a rich text editor into your web application, CKEditor 5 is likely at the top of your list. It’s powerful, modular, and modern. However, if you are reading this, you have likely hit a common roadblock during installation: "Where do I put my CKEditor 5 license key?" or perhaps, "Do I even need one?"
The world of open-source licensing can be confusing. In this post, we’ll break down the licensing model of CKEditor 5, explain the difference between the open-source and commercial versions, and show you exactly how to configure your license key.
No. Each commercial license is tied to a single product (domain or set of domains). You need a separate license for each distinct commercial application.
If you install CKEditor 5 via npm:
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor'; import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials'; // ... other imports
ClassicEditor .create(document.querySelector('#editor'), licenseKey: 'YOUR_LICENSE_KEY_HERE', plugins: [ Essentials, /* ... */ ], toolbar: [ 'heading', 'bold', 'italic', 'bulletedList', 'numberedList' ] ) .catch(error => console.error(error); );
For most open-source and non-commercial projects, CKEditor 5 can be used without additional licensing costs. However, commercial projects that may involve derivative works or require specific agreements for use within proprietary systems should contact CKSource to discuss their needs and negotiate appropriate terms. There's no "license key" to manage in the traditional sense; instead, the focus is on adhering to the GPLv2 license terms or negotiating alternative licensing directly with CKSource. ckeditor 5 license key
If you downloaded a custom build from the CKEditor 5 Online Builder, the licenseKey configuration is usually pre-filled with a placeholder or a trial key. Replace it with your paid key.
For developers using npm, Webpack, or Vite:
Install the editor (example with classic editor): Best Practices for Managing License Keys
npm install @ckeditor/ckeditor5-editor-classic
Set the license key before initializing the editor:
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic'; import CKEditor from '@ckeditor/ckeditor5-react'; // if using React// CRITICAL: Set your license key globally window.CKEDITOR_LICENSE_KEY = 'Your-License-Key-Here';
// Or, if using a config object: ClassicEditor .create( document.querySelector( '#editor' ), licenseKey: 'Your-License-Key-Here', // other config options... ) .catch( error => console.error( error ) );Never hardcode keys in client-side code if you can avoid it