waynestate/nova-ckeditor4-field
A Laravel Nova field that integrates the CKEditor 4 WYSIWYG editor into your admin panel. Add rich text editing to any Nova resource with configurable toolbars, image and file uploads handled through Nova, and straightforward customization for content-heavy applications.
composer require plus a CKEditor4::make() call. That makes "yes, add WYSIWYG to the content model" a low-cost scope decision rather than a sprint-sized commitment.Adopt when:
Look elsewhere when:
Upgrading from 2.0.0: 2.0.1 changes the model-write path — fillAttribute now defers to Nova's parent implementation instead of intercepting the value. That's a compatibility fix, not a feature: it should make the field behave more predictably with fillUsing, field defaults, nullable columns, and dependent fields. It is a patch release with no migration step, but it is a behavioral change on persistence, so re-verify on staging: that empty editor content still writes the value you expect (empty string vs. null), that any existing fillUsing callback still wins, and that stored content matches pre-upgrade output. If you had quietly come to rely on the old interception, that reliance is now a bug in your app, not in the package.
To executives: This is a small, free (MIT) integration that lets our existing Nova admin support formatted content editing in days instead of weeks, and it preserves any CKEditor 4 content and authoring workflows we already have. It's low-cost and low-commitment — we can fork it if the maintainer walks away. The trade-off to acknowledge up front: the underlying editor is legacy and end-of-life, so this is a bridge, not a destination. Recommend approving it as a tactical unblock with an explicit follow-on item to modernize the editor.
To engineering: A thin Nova field wrapper around CKEditor 4 — one field class plus front-end assets, config passthrough for toolbar/plugins. No black box, no exotic dependencies, MIT so forking is a legitimate maintenance strategy. 2.0.1 is a one-line-of-intent fix: the field now returns the parent fillAttribute result by default, meaning Nova owns how values land on the model rather than the field overriding it — good for defaults/fillUsing/nullable interop, but confirm empty-content persistence before shipping. Two non-negotiables: sanitize HTML server-side on render (do not treat the editor as a trust boundary), and pin the version with a documented re-verification step on every Nova upgrade. If we need supported CKEditor 4 past the LTS window, that's a licensing line item, not a code one.
Risk summary to carry into the decision: single maintainer, negligible adoption signals, upstream editor EOL with a history of XSS advisories, an implicit coupling to Nova's release cadence, and — as of 2.0.1 — a persistence-path behavior change in a patch version. All manageable for an internal, trusted-author admin tool; none acceptable for a customer-facing or regulated surface.
How can I help you explore Laravel packages today?