Filament v4.13.0: What's New
Released on 7 September 2026, Filament v4.13.0 is a feature-packed minor release that improves performance, developer ergonomics, and UI consistency across the framework. Here is a detailed look at every notable change.
Deferred Schema Loading
The headline addition is deferred schema loading, contributed by @KianAcquoy. Instead of evaluating an entire form or infolist schema on the initial page load, you can now defer that work until it is actually needed. This is particularly valuable for complex admin panels where some schemas are rarely visited, reducing both server-side rendering time and Livewire payload size.
Persist Table Grouping in the Session
Tables that use grouping can now persist the active group in the user's session, thanks to @IGedeon. Users no longer lose their grouping preference when they navigate away and return to a table — a small but meaningful UX win.
Alongside this, @tanthammar added a direction argument to defaultGroup(), giving you control over the default sort direction of a group straight from the table definition:
->defaultGroup(
Group::make('status')->direction('desc')
)
RichEditor minHeight() / maxHeight()
@pxlrbt added minHeight() and maxHeight() support to the RichEditor component, letting you constrain the editor's vertical size without resorting to custom CSS:
RichEditor::make('body')
->minHeight('200px')
->maxHeight('600px')
Reusable MultiFactorChallenge Class
@webard introduced a reusable MultiFactorChallenge class, making it easier to share MFA challenge logic across different parts of your application without duplicating code.
Trait-Named Lifecycle Hooks on Pages and Importers
@oddvalue added support for trait-named lifecycle hooks on pages and importers. This means traits can define hook methods that are automatically discovered and called, enabling cleaner composition of page behaviour without overriding base methods.
Stats Empty State Behaviour
@ahmed-rashad-alnaggar implemented empty state behaviour for stats widgets. You can now define what is displayed when a stat has no data, keeping your dashboards informative rather than showing a blank or zero value.
Custom Downloader for Laravel Vapor
@bretto36 introduced a Custom Downloader interface, allowing teams running on Laravel Vapor (or other environments where direct file streaming is not possible) to plug in their own download logic.
Other Notable Changes
- Published assets added to
.gitignoreon install — new installs will no longer accidentally commit compiled assets (@chinmaypurav). - No unsaved-changes alert for read-only action modals — modals that cannot contain unsaved changes no longer trigger the browser warning (@grafst).
- Laravel Boost Agent Skill — the Laravel Boost guidelines have been converted into an agent skill for AI-assisted development (@hackel).
- Collapsible desktop sidebar CSS fix —
--collapsed-sidebar-widthis now correctly applied to collapsible desktop sidebars (@PrestaEdit). - Wizard next-action loading indicator scoped — the loading indicator is now scoped to its own request, preventing false positives (@people-sea).
- Modal scroll fix — opening a modal with no tabbable content no longer scrolls the page (@lazerg).
- Improved Composer autoload discovery for
discover_app_classes()(@emyassine). - Sidebar horizontal scroll prevented inside the image editor (@mrleblanc101).
- Translation updates for Spanish and Lus locales.
Key Takeaways
- Defer expensive schema evaluation with the new deferred schema loading feature.
- Table grouping preferences now survive page navigation via session persistence.
RichEditorgainsminHeight()andmaxHeight()for layout control.- A reusable
MultiFactorChallengeclass simplifies MFA implementations. - Laravel Vapor users can now supply a custom file downloader.
- Several UX and CSS bugs have been resolved in this release.
Full changelog and pull request details: https://github.com/filamentphp/filament/releases/tag/v4.13.0