- How do I install joelwmale/livewire-quill in a Laravel app?
- Run composer require joelwmale/livewire-quill, then publish the package's assets and config through the usual vendor:publish flow so Quill's CSS and JS are available to your front end. After that, mount the component inside any Blade view that lives within a Livewire component tree and you have a working rich text field. Integration is purely additive: there is no service layer, database migration, or queue involvement to set up.
- Which Livewire and PHP versions does livewire-quill support?
- Version 5.4.0 widens the constraint to livewire/livewire ^3.0|^4.0, so both Livewire 3 and Livewire 4 are supported, on PHP 8.2 through 8.5. The tested matrix is narrower than the constraint, though: PHP 8.2 to 8.4 is validated against both Livewire majors, while PHP 8.5 is only validated against Livewire 4. Check the CI matrix in the repository before assuming a specific combination is proven.
- How do I bind the Quill editor content to a Livewire property?
- You bind with wire:model on the component, exactly like any other Livewire form field, and the package syncs the editor's HTML into your public property. That means validation rules, dirty-state checks, and save actions all work with normal Livewire patterns. Keep the property a plain string and let the package handle the HTML output.
- Does livewire-quill support image uploads in the editor?
- Image support is explicitly part of the package's scope, which is one of the reasons to choose it over wiring Quill by hand. By default Quill embeds images as base64 data URLs, which is fine for small inline images but bloats your database column and payload size. For real file uploads you will want a custom image handler that stores files server-side and returns a URL, plus validation on the Livewire property.
- How do I customize the Quill toolbar in livewire-quill?
- The toolbar is configurable, so you can trim the default Quill control set down to what your authors actually need instead of shipping headers, code blocks, and fonts they never touch. Configuration is handled through the package's published config rather than by editing Quill's JavaScript directly, which keeps the integration JavaScript-free on your side. Keep the toolbar minimal to reduce bundle weight and cognitive load in admin forms.
- Why does my editor content disappear or reset after a Livewire re-render?
- Quill is a stateful DOM widget, and Livewire's morph and hydration cycle can replace the editor's DOM, which wipes the in-editor state. The package is built around this with wire:ignore and deferred-update semantics, but the failure surface is real if you nest the editor inside conditionally rendered blocks or keyed loops. Exercise create, edit, autosave, validation failure, and forced re-render paths in your own app rather than trusting CI alone, since that round trip is the highest-failure-probability path.
- Is livewire-quill suitable for a SPA or a non-Livewire front end?
- No. The package is explicitly a thin Blade and JavaScript component that binds Quill to a Livewire property, and it does not fit SPA or non-Livewire front ends. It is designed for server-driven Laravel plus Livewire surfaces such as admin panels, CMS forms, and internal content authoring tools. If your editor must be framework-agnostic, use Quill directly or a standalone wrapper instead.
- How do I test a Livewire form that uses livewire-quill?
- The component's server-side behaviour is testable with standard Livewire testing helpers: assert the property value, run validation, and assert the save path. The editor itself is a client-side widget, so DOM-level assertions belong in browser tests rather than PHPUnit. The most valuable test to add is an editor-state persistence check across a Livewire round trip, because content loss on morph is the package's key risk.
- Can I use PHP 8.5 with Livewire 3 and livewire-quill?
- That combination is untested rather than declared unsupported: the CI matrix covers PHP 8.5 only against Livewire 4, and Livewire 3 coverage stops at PHP 8.4. Treat a PHP 8.5 plus Livewire 3 setup as unvalidated and run your real editor surfaces against it before committing. If PHP 8.5 is a requirement, target Livewire 4 rather than fighting the matrix.
- Is upgrading from livewire-quill v5.3.0 to v5.4.0 a breaking change?
- No. v5.4.0 is a compatibility release that widens the livewire/livewire constraint to ^3.0|^4.0 with CI running across both majors, rather than a behavioural rewrite. Composer update to ^5.4 and pin the Livewire major explicitly in your root composer.json so the widened constraint can't silently resolve to a version you haven't tested. Teams already on Livewire 3 have no forced action; teams blocked on Livewire 4 adoption now have a supported path.