Filament Is Getting a Major Performance Boost — and Needs Your Help
The Filament team has been quietly working on a sweeping set of performance improvements across the entire first-party Filament package ecosystem. After a significant tables-package rework in the v3-to-v4 upgrade, they've gone even further this time, targeting forms, panels, widgets, and more.
To validate these changes against real-world workloads before a full release, the team has published beta versions of both Filament v4 and Filament v5. They're asking the community to install them, run them locally or in staging, and report back.
How to Install the Beta
Getting started takes just two steps:
- Open your
composer.jsonand update the version constraint for everyfilament/*package you use:- Filament v4:
^4.12@beta - Filament v5:
^5.7@beta
- Filament v4:
- Run
composer updateto pull the latest beta packages.
# Example for a v4 project
composer require filament/filament:"^4.12@beta" --update-with-dependencies
No significant code changes are required — the performance improvements are internal.
Important: Do not deploy these beta versions to production. They are suitable for local development and staging environments only.
Once you've tested, please leave a reply in the official GitHub discussion — even if everything works perfectly. The team needs positive signals just as much as bug reports.
What Changed?
Here is a summary of the most notable improvements across the ecosystem:
Forms & Schemas
- Large forms render significantly faster thanks to Blade views being refactored into HTML generation functions.
- Repeaters, builders, and repeatable entries now memoize child schemas more aggressively.
- Component configuration, colours, descriptions, icons, and tooltips are memoized.
- Selects resolve their options fewer times during rendering.
Tables
- Optimised rendering fast-paths for basic text columns and actions.
- State formatting runs fewer times per cell.
- Optimised reordering for
BelongsToManyrelationships. - Internal query-builder parts are memoized rather than rebuilt on every call.
Panels & Resources
- Memoized model-to-resource lookups, resource slugs, page names, and relation manager visibility.
- Faster navigation group sorting.
Widgets & Charts
- Stat chart widgets no longer import the entire Chart.js library, reducing JavaScript bundle size.
- Stat charts skip redraws when the underlying data has not changed.
Other Improvements
- A more efficient
ComponentAttributeBagreplaces Laravel's default implementation. - Fixed a memory leak caused by action modal event listeners not being cleaned up.
- Fewer redundant config fetches and button component instantiations per request.
- More efficient filesystem disk caching and file-existence checks.
- Notification Alpine components now serialise less data.
Key Takeaways
- Install the beta with
^4.12@betaor^5.7@betain yourcomposer.json. - Test locally or in staging — never in production.
- Performance gains span forms, tables, panels, widgets, and core internals.
- A memory leak in action modal event listeners has been fixed.
- Chart.js is no longer fully bundled in stat chart widgets, reducing bundle size.
- Report results (good or bad) in the GitHub discussion.