makraz/ux-editorjs
makraz/ux-editorjs brings Editor.js to Laravel with Blade components and helpers for storing, editing, and rendering block-based JSON content. Add a clean, customizable block editor to your app with minimal setup.
EditorjsType form field plus EditorjsAdminField (EasyAdmin) means a content-authoring feature can be scoped as "install a bundle and configure a form field" rather than "build a JS editor integration." That materially changes the estimate for any roadmap item involving article, page, or marketing-copy editing.UploadHandlerInterface escape hatch covers the most commonly underestimated part of an editor story. Configurable max file size and MIME allowlist means the security baseline is config, not code.symfony/stimulus-bundle, Twig forms). It is not Laravel-native. For a Laravel codebase, treat this as reference architecture and a source of design lessons, not a drop-in dependency — budget a real port (Blade component, Livewire instead of Live Components) or use Editor.js directly.Adopt (trial / internal use) when:
data-live-ignore), or image uploads to cloud storage without writing a controller.Look elsewhere / do not adopt when:
To executives (one paragraph): This is a small, early-stage open-source Symfony bundle that plugs a professional block editor (Editor.js) into standard Symfony forms. The commercial case is avoided engineering cost: it replaces what is typically several weeks of bespoke JavaScript and upload plumbing with a form field and configuration, and it includes cloud storage support and a sensible file-upload security baseline. The risk is maturity — it is v0.1.0 and explicitly pre-stable, with no compatibility guarantees and no support contract. Recommendation: approve as a low-cost trial inside internal/admin tooling only, with a pinned version and a named owner; do not put it on a customer-facing or revenue-critical path until it reaches a stable release or we have forked it.
To engineering:
CustomTool for arbitrary ecosystem tools, AbstractTool for our own, TuneInterface for block tunes, and JS events (editorjs:options, editorjs:connect, editorjs:change) for lifecycle hooks.0.1.*), vendor or fork if we ship it, and expect breaking changes on every bump. Treat upgrades as scheduled work, not incidental.UploadHandlerInterface against our existing storage abstraction rather than adopting the bundled controller wholesale, so we keep authz and virus-scanning in one place.Decision requested: approve a timeboxed spike (one form, one admin screen, pinned version) with a go/no-go review against accessibility, sanitization, and upgrade-cost criteria.
How can I help you explore Laravel packages today?