Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Livewire Quill

Livewire Quill Laravel Package

joelwmale/livewire-quill

A Laravel Livewire component for the Quill WYSIWYG editor. Add rich text fields to Livewire forms, bind content with wire:model, customize the toolbar, and get clean HTML output without writing JavaScript.

View on GitHub
Deep Wiki
Context7

Easily add QuillJS with image support to any Laravel Livewire component.

Frequently asked questions about Livewire Quill
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.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource