nasirkhan/laravel-jodit
Laravel package that integrates the Jodit WYSIWYG editor via a reusable Blade component. Works in Blade, view components, and Livewire with wire-model syncing. Includes a configurable server-side file browser/uploader connector and loads assets via CDN (no build step).
Pros:
<x-jodit::editor> component abstracts complexity while maintaining flexibility.wire-model support eliminates manual DOM manipulation, reducing boilerplate in Livewire components.intervention/image for resizing).Cons:
wire-model may not suit real-time editing needs (e.g., collaborative tools).composer require + Blade component inclusion. No Laravel service provider registration needed (auto-discovered).intervention/image for image resizing (adds ~1MB to dependencies).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| CDN dependency | Medium | Self-host Jodit assets via config/jodit.php |
| Livewire sync delays | Low | Adjust debounce prop or use wire:ignore manually |
| File upload limits | Medium | Validate max_file_size and allowed_mimes in config |
| Image resizing | Medium | Ensure intervention/image-laravel is installed |
| Concurrent uploads | Low | Built-in throttling in connector controller |
Editor Customization Needs:
Storage Backend:
public disk, or a custom disk (e.g., S3) requiring additional configuration?intervention/image)?Livewire Integration:
Security:
web + auth middleware?Scaling:
Laravel Ecosystem:
<x-jodit::editor>.wire-model support with automatic wire:ignore handling.Non-Laravel Considerations:
Pilot Phase:
wire-model sync).Configuration Hardening:
php artisan vendor:publish --tag=jodit-config) and customize:
Incremental Rollout:
| Component | Compatibility Notes |
|---|---|
| Laravel 11/12/13 | Fully supported (PHP 8.2+). |
| Livewire 3.x | Tested; wire-model sync works out-of-the-box. |
| Blade Stacks | Requires @stack('after-styles') and @stack('after-scripts') in layout. |
| File Storage | Defaults to public disk; custom disks need intervention/image for resizing. |
| Middleware | Connector uses web + auth by default; override via config or custom route. |
Prerequisites:
intervention/image-laravel is installed if using image resizing.after-styles, after-scripts) exist in the main layout.Core Integration:
composer require nasirkhan/laravel-jodit.<x-jodit::editor> in Blade/Livewire templates.Advanced Setup:
php artisan vendor:publish --tag=jodit-config
Testing:
Pros:
Cons:
intervention/image adds a moving part if images are resized/cropped.wire:ignore is not overridden and debounce is sufficient.allowed_mimes config.Performance:
Resource Usage:
intervention/image) can be resource-intensive for large files.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| CDN downtime | Editor JS/CSS fails to load | Self-host assets |
How can I help you explore Laravel packages today?