Help make Filament faster!

Published on by

Help make Filament faster! image

Over the years, the Filament team has done a lot of work behind the scenes to make Filament the fastest, most performant option available for building your applications in the TALL stack. Most recently, they did a huge rework of the tables package that massively decreased render time in the v3 to v4 upgrade.

Well, over the past few months, they've been back at it again trying to squeeze some more performance out of Filament. This time, they've made a bunch of adjustments across the entire first-party Filament package ecosystem, and are excited about the preliminary performance gains they are seeing in their testing!

However, before the team launches a release this big to all Filament applications everywhere, they want to make sure that they give these changes time to be used in real-world applications. To do this, the team is launching all of these changes with a new beta version of both Filament v4 and v5 that you can install into your Filament applications today! All they ask is that you keep them up to date with any issues you bump into locally as well as giving them feedback into how much of a performance improvement you see in your specific use case.

Installation instructions

You can get up and running with either the v4 or v5 beta in just a few simple steps:

  1. Update your composer.json constraints for any open source filament/* package to either ^4.12@beta or ^5.7@beta depending on which major version of Filament you are currently running
  2. Run composer update to pull the latest beta version
  3. $$$

Just like that, without any major code changes, you should be up and running with a more performant version of Filament.

As always, this is the part where I add my usual disclaimer about not using these beta versions in production. They are, by nature, potentially unstable, so be cautious as to where you use these beta versions! However, they are perfectly fine to run locally or in a staging environment.

Please add a reply to this GitHub discussion so we can get a gauge on how many people have tested the beta whether you experience issues with the beta or not. We need to know that it's working well with no issues just as much as we need to know of any bugs!

What changed?

If you are curious as to what has changed to give Filament such a performance boost, here are a few of the stand-out adjustments that we've made across the ecosystem:

Forms & schemas

  • Significantly faster rendering of large forms, thanks to refactoring Blade views into simple HTML generation functions.
  • Repeaters, builders, and repeatable entries now memoize their internal child schemas more aggressively.
  • Component configuration, colours, descriptions, icons, and tooltips are now memoized.
  • Selects resolve their options fewer times while rendering in some situations.

Tables

  • Faster overall table rendering, including optimised rendering fast-paths for basic text columns and actions, alongside and various other internal memoizations.
  • State formatting runs fewer times per cell in some cases.
  • Optimised table reordering for BelongsToMany relationships.
  • Internal parts of the query builder are now memoized rather than rebuilt repeatedly.

Panels & resources

  • Memoized model-to-resource lookups, resource slugs, resource page names, and relation manager visibility.
  • Faster navigation group sorting.

Widgets & charts

  • Stat chart widgets no longer import the entire Chart.js library, reducing bundle size.
  • Stat charts no longer redraw when the underlying data hasn't changed.

Other

  • A more efficient ComponentAttributeBag that replaces Laravel's.
  • Fixed a memory leak caused by action modal event listeners not being cleaned up.
  • Fewer redundant config fetches and button component instantiations across requests.
  • More efficient filesystem disk caching and file-existence checks.
  • Notification Alpine components now serialise less data.

A huge thank you

I know the Filament team says this in practically all of our blog posts, but we truly can't say it enough: Filament wouldn't be the incredible ecosystem it is today without all of you in the community.

From the bottom of our heart, thank you for getting us here, and thank you even more for being willing to help us test these new versions of Filament to benefit everyone throughout the entire community.

Let's make Filament even faster, together!

P.S. Please remember to reach out in this GitHub discussion if you test the beta versions, even if they work fine!

Alex Six photo

Senior Software Development Engineer @ Zillow. Head of Developer Relations @ Filament. Mentor. Loves Laravel, Filament, JS , and Tailwind. Vim user. Has a cute corgi. Posts at https://alexandersix.com

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.

image
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud
PhpStorm logo

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
No Compromises logo

No Compromises

Joel and Aaron, the two seasoned devs from the No Compromises podcast, are now available to hire for your Laravel project. ⬧ Flat rate of $9500/mo. ⬧ No lengthy sales process. ⬧ No contracts. ⬧ 100% money back guarantee.

No Compromises
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit

The latest

View all →
Turn PHP Attributes Into Docs With Signal image

Turn PHP Attributes Into Docs With Signal

Read article
USAIGE: Track Token Usage and Costs for Laravel AI SDK Requests image

USAIGE: Track Token Usage and Costs for Laravel AI SDK Requests

Read article
Yammi Audit Log: Track Who Really Made a Change Across Jobs and Queues image

Yammi Audit Log: Track Who Really Made a Change Across Jobs and Queues

Read article
Route Metadata Support in Laravel 13.17 image

Route Metadata Support in Laravel 13.17

Read article
Ship AI with Laravel: Failover, Queues, and Middleware for AI Agents image

Ship AI with Laravel: Failover, Queues, and Middleware for AI Agents

Read article
Monitor and Control Schedules, Queues, and Errors in Laravel with Watchtower image

Monitor and Control Schedules, Queues, and Errors in Laravel with Watchtower

Read article