Skip to content

Filament v5.8.0 Released: Deferred Schema Loading, Session Grouping & More

Filament v5.8.0 ships deferred schema loading, persistent table grouping, RichEditor height controls, a reusable MultiFactorChallenge class, and a custom downloader for Laravel Vapor — plus a handful of focused bug fixes.

Published · Updated · 4 min read

Filament v5.8.0 Released: Deferred Schema Loading, Session Grouping & More

Filament v5.8.0 Is Out — Here's What's New

Released on 7 September 2026, Filament v5.8.0 is a feature-packed minor release that improves performance, developer ergonomics, and multi-factor authentication support. Below is a detailed look at every notable addition and fix.


New Features

Deferred Schema Loading

Contributed by @KianAcquoy, this feature lets you defer the loading of a schema until it is actually needed. For panels with large, complex forms this can meaningfully reduce initial page weight and time-to-interactive.

Persistent Table Grouping

Tables can now persist the active grouping choice in the user's session, courtesy of @IGedeon. Users no longer lose their preferred grouping after a page refresh.

// Example: opt-in to session persistence on a table
$table->persistGroupingInSession();

defaultGroup() Direction Argument

@tanthammar added a direction argument to defaultGroup(), giving you control over the initial sort direction of a grouped table straight from the definition.

$table->defaultGroup(
    Group::make('status')->direction('desc')
);

RichEditor minHeight() / maxHeight()

The RichEditor field now supports minHeight() and maxHeight() methods (@pxlrbt), so you can constrain the editor's vertical size without reaching for 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 multiple panels or custom authentication flows without duplicating code.

Custom Downloader for Laravel Vapor

@bretto36 added a custom downloader interface so applications running on Laravel Vapor — where the local filesystem is ephemeral — can supply their own download strategy.

Trait-Named Lifecycle Hooks

@oddvalue extended lifecycle hook discovery to support trait-named hooks on pages and importers, making it simpler to compose behaviour through traits without naming conflicts.

Empty State for Stats

Stats widgets now support an empty state, contributed by @ahmed-rashad-alnaggar. You can define what is displayed when a stat has no data, keeping your dashboard polished in all scenarios.

Published Assets Added to .gitignore on Install

The installer now automatically adds published assets to .gitignore (@chinmaypurav), preventing accidental commits of compiled front-end files.

Laravel Boost Agent Skill

The existing Laravel Boost guidelines have been converted into an Agent Skill (@hackel), making them directly consumable by AI coding agents.

No Unsaved-Changes Alert for Read-Only Action Modals

Action modals that cannot contain unsaved changes no longer trigger the unsaved-changes browser alert (@grafst), reducing false-positive interruptions for end users.


Bug Fixes

  • Collapsible desktop sidebar — --collapsed-sidebar-width CSS variable is now correctly applied (@PrestaEdit).
  • Wizard next-action loading indicator — scoped to its own request to avoid cross-step interference (@people-sea).
  • Modal scroll lock — opening a modal with no tabbable content no longer scrolls the page (@lazerg).
  • Composer autoload discovery — discover_app_classes() resolution improved (@emyassine).
  • Image editor sidebar — horizontal scroll inside the file-upload image editor is now prevented (@mrleblanc101).

Key Takeaways

  • Use deferred schema loading to speed up complex admin panels.
  • Enable persistGroupingInSession() so users keep their table view preferences.
  • Constrain RichEditor height with minHeight() / maxHeight() instead of custom CSS overrides.
  • The new MultiFactorChallenge class reduces MFA boilerplate across multi-panel apps.
  • Laravel Vapor users can now plug in a custom downloader without workarounds.
  • Published assets are kept out of version control automatically after a fresh install.

Source: Filament v5.8.0 on GitHub

Frequently asked questions

How do I enable persistent table grouping in Filament v5.8.0?

Call `persistGroupingInSession()` on your table definition. Filament will then store the user's active grouping choice in their session and restore it on subsequent page loads.

Does the new custom downloader in v5.8.0 work only with Laravel Vapor?

The custom downloader interface was introduced primarily to support Laravel Vapor's ephemeral filesystem, but it is a general-purpose interface — any application that needs a non-default download strategy can implement it.

What does deferred schema loading do for performance?

It delays the evaluation and rendering of a schema until it is actually required, reducing the initial payload and processing time for pages that contain large or conditionally visible forms.

Mohamed Said

About the author

Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

About GitHub LinkedIn WhatsApp Email Address My CV

Have a technical challenge?

Tell me what you’re building. I reply within two working days.

Discuss your project