Hysen Labs
Open-source project
wontlost-ltd/vaadin-ckeditor avatar
wontlost-ltd

vaadin-ckeditor

A comprehensive ckeditor 5 integration for Vaadin 25+

21 stars13 forksJavaApache-2.0
DEEP OPEN-SOURCE ANALYSIS

Vaadin CKEditor 5 integrates the editor into Vaadin applications

This addon wraps CKEditor 5 for Vaadin 24 and later, with presets, editor types, theming, autosave, and premium plugin support.

What the addon provides

Vaadin CKEditor 5 is a comprehensive integration of CKEditor 5 for Vaadin 24 and later. The README lists the features in plain terms. It bundles more than 70 free plugins from the official ckeditor5 npm package and supports the premium features package for easy integration. It offers several editor types: classic, inline, balloon, and decoupled. It syncs with Vaadin's Lumo theme for light and dark modes and gives fine grained control over toolbar and button appearance. File upload handling includes validation and progress tracking, and there is comprehensive error handling with fallback modes. HTML sanitization policies are built in for safety, and autosave is debounced with a configurable interval. Internationalization covers more than 10 languages, and the frontend component is fully typed in TypeScript. The addon is published to Maven Central as com.wontlost:ckeditor-vaadin, and the README shows both Maven and Gradle snippets at version 5.3.3. A compatibility matrix ties the addon to Vaadin Platform 25.2.6 or newer, CKEditor 5 at 48.4.0, Java 21 or newer, Jackson 3.1.3 or newer, Jakarta Servlet API 6.1.0 or newer, and Spring Boot 4.0.4 or newer as the recommended baseline. The README also notes that an unreleased version moved the CKEditor 47 to 48 compatibility layer into a frontend normalizer so older top level fields auto migrate to v48. This makes the addon a drop in rich text component for server side Vaadin developers.

Presets, editor types, and theming

The README documents a builder API for creating editors. A developer can start from a preset such as STANDARD or FULL and then set initial value, or build from scratch with withPreset and withValue. The available presets range from EMPTY at about 100KB to NOTION at about 900KB, with BASIC, STANDARD, FULL, DOCUMENT, and EMAIL in between, so the bundle size tracks the feature set. Editor types are selected with withType and include classic, inline, balloon, and decoupled, the last of which supports a minimap. Theme integration uses withTheme and can follow Lumo automatically or force dark mode. Autosave is configured with a callback and a debounce interval in milliseconds, and a read only mode can be set at build time or toggled at runtime. Custom plugins are added by name or by building a CustomPlugin from a local or npm import path, and the toolbar is described as a list of items passed to withToolbar. Per button styling is possible through a ToolbarStyle and ButtonStyle builder that set background, hover, active, and icon colors. The README shows concrete Java code for each of these, which gives a Vaadin developer a copy paste starting point. The general HTML support flag preserves arbitrary HTML attributes, and the dependency mode can auto resolve, strictly fail, or skip checking. These options let teams balance convenience against strict control over which plugins load.

Premium features and licensing

The README explains that premium CKEditor features require a CKEditor license and links to the pricing page. Enabling them is done either by calling VaadinCKEditorPremium.enable once at startup, which installs the premium npm package automatically, or by installing ckeditor5-premium-features manually in the frontend directory. The license credential is configured through withLicenseKey, and the README advises reading it from an environment variable so the credential is not committed to version control. It also recommends Approved Hosts Whitelisting in the CKEditor customer portal so the credential only works on approved domains or IP ranges. A table lists premium plugins such as ExportPdf, ExportWord, ImportWord, FormatPainter, Template, Pagination, and several AI plugins including AIAssistant, AIChat, and AITranslate. Collaboration plugins such as Comments, TrackChanges, and RevisionHistory are shown as another group. The addon itself is licensed under Apache 2.0, while CKEditor 5 is dual licensed under GPL 2 or later for open source use and a commercial license for proprietary use, and premium features need a commercial CKEditor license. An optional TestBench module provides a type safe page object for testing, but it depends on the commercial Vaadin TestBench with provided scope and is not bundled. The README closes with support channels, professional services, and links to the user guide, quick reference, and changelog, which rounds out the addon as a documented, production oriented Vaadin component.

Editorial conclusion

The addon is licensed under Apache 2.0 and its most recent commit was on 2026-08-26.

DEEP OPEN-SOURCE ANALYSIS

Official sources

Community notes

Community notes