4,000 emails/month for free | Mailtrap sends real emails now!

All About the Filament v4 Beta Release

Published on by

All About the Filament v4 Beta Release image

It's time for v4 Beta details

We've had a lot of exciting news come from the Filament project over the past few years, but none has been more avidly requested than news on the v4 release. Well, today, in this post, we're going to drop some exciting details about the v4 Beta that will be released in the near future. Get excited, because it's almost time!

Filament v4

Filament v4 is the biggest, most feature-packed release that Filament has ever had. Honestly, until I looked hard into all of the features that are being released, I was pretty skeptical of that. After all, Filament v3 was a MASSIVE release that was over 100 minor versions in the making! We're pumped for all of you in the Filament community to get your hands on v4 and let us know what you think of all the hard work that the team has poured into this latest major release!

Before we get to the launch details (ooooh the suspense!), let's talk a bit about some of the features that the team is most excited about that are coming in Filament v4:

Nested Resources

One of the longest-running requests that we've received for Filament is to build nested resources right into Filament. Now, with v4, we've done just that!

For those who may have never heard of nested resources, what these will allow you to do is operate on a given Filament resource within the context of a parent resource. For example, when working on a learning-management system, you'd likely have a CourseResource class to back your Course model. Within a Course, you'd also likely have many related Lesson objects that contain the actual lesson material.

Previously, in v3, you could edit related Lesson records via a modal within the CourseResource. This would open a modal with a form where you could make your adjustments. However, in the case of something like a Lesson, a simple modal form may not actually be enough. Instead, you may have preferred to edit a Lesson in the context of its related Course, but in a full page. Now, in v4, nested resources allow you to do these edits of a child resource in the context of its parent.

Creating a nested resource is easy--you use the make:filament-resource command as you would to create a normal resource, but you tack on the --nested flag. Once done, you will end up with a Resource class that is connected to its parent resource and can be edited in the context of its parent.

We're really excited about this addition, and we hope that it's a simple, enjoyable solution that you can use in your Filament applications!

Multi-Factor Authentication

For a long time, the Panel package within Filament has included an authentication system for logging in, registering, etc. Without any tweaks, this system has worked extremely well for lots of applications. However, while a standard email/password only authentication system works for many apps, we fully acknowledge that there's a need for more layers of security built in for other types of applications.

In general, we consider multi-factor authentication to be almost a necessity in the modern era of application authentication, so in an effort to help developers build more secure applications, we've done the heavy lifting for you!

In the interest of giving developers more options, we have upgraded our authentication system for v4 to include multi-factor authentication as an option out of the box! When MFA is enabled by the application developer, users will need to take an additional step when registering and logging into the application to set up multi factor auth. You can allow users to use either the Google two-factor auth system (ex: Google Authenticator) or the email code authentication system (ex: sending a one-time password to the given email address).

That's it! All you have to do is enable the system and Filament will do the work for you! No setting up the MFA registration UI, no managing the MFA authentication flow; it's all taken care of with the flip of a switch.

Static Table Data

Another common request that we've heard a lot over the years is allowing developers to use Filament tables with data that isn't backed by a Model class. In the past, our recommendation has been to create a "Model" backed by Sushi, but this doesn't work in all situations.

Because of this, we have spent a lot of time going back to the drawing board for Filament's tables, and they are now able to take in static, non-Model data and display them with all of the same features and niceties that you know and love from the existing Filament tables package!

To add static data to a Filament table, it's as simple as passing an array of the data that you'd like to display into the records() method that is now present on the Table object. Once you've done that, Filament will render out whatever data you passed in. Nice and simple!

Unified Schemas & Actions

While we were ripping out the Filament Tables package and rebuilding it for static data, we figured it was a good time to perform some restructuring of the Forms, Infolists, and Actions as well.

In v3, Form components live in the Forms namespace and Infolist components live in the Infolist namespace. However, as we stepped back and looked at these two systems, we noticed that they have a lot in common and could benefit a lot by being intertwined. So, in v4 we have migrated all Form and Infolist components into the Schema namespace. This means that you'll have one less namespace to worry about, but more importantly, you can now mix and match Form and Infolist components in the same Schema area!

In a similar vein, in Filament v3, Actions have always been a bit of a tripping hazard for developers of all levels. When going to use an Action, it was fairly common to start typing out the Action class into your code editor, just to have it autocomplete the import for the wrong Action class. Additionally, when creating custom Actions, it was far too easy to accidentally extend the wrong Action or to need to create multiples of the same Action just to use it in a Form, Infolist, Table, etc. To combat all of this, we have updated Actions to (almost) all extend from the same base Action class. This then means that you'll practically never import the wrong Action class again, and, more importantly, you can now create Actions that are reusable across multiple different Filament packages (Forms, Infolists, Tables, etc.).

Performance Improvements

Last, but certainly not least, the team has been hard at work knocking out some incredible performance improvements within the Filament codebase. We've scoured each and every class to figure out where the biggest bottlenecks existed in v3, and in doing so, we have seen MASSIVE performance boost in specific applications when upgrading to Filament v4. There's a lot of technical details surrounding these performance enhancements that we'll likely need to make an entirely separate post about, but when you get your hands on v4, let us know if you notice your applications running more quickly after the upgrade!

The announcement we've all been waiting for

Speaking of getting our hands on the v4 Beta, by reading all of the way through this post (I know you didn't just skip down here, right?), I think you've earned the right to know that the Filament team has officially settled on a v4 Beta release date.

You won't have to wait much longer, because we will be releasing the Filament v4 Beta on June 10, 2025 at Laravel Live UK!

We're so excited for you all to get your hands on v4 and let us know. Remember that this upcoming release IS STILL JUST A BETA, so we don't recommend using this in any production or otherwise mission-critical applications.

What are you most excited for in v4? Hit us up on Twitter or Bluesky and let us know what you're looking forward to most!

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
Bacancy

Outsource a dedicated Laravel developer for $3,200/month. With over a decade of experience in Laravel development, we deliver fast, high-quality, and cost-effective solutions at affordable rates.

Visit Bacancy
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec
Bacancy logo

Bacancy

Supercharge your project with a seasoned Laravel developer with 4-6 years of experience for just $3200/month. Get 160 hours of dedicated expertise & a risk-free 15-day trial. Schedule a call now!

Bacancy
Tinkerwell logo

Tinkerwell

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

Tinkerwell
Get expert guidance in a few days with a Laravel code review logo

Get expert guidance in a few days with a Laravel code review

Expert code review! Get clear, practical feedback from two Laravel devs with 10+ years of experience helping teams build better apps.

Get expert guidance in a few days with a Laravel code review
PhpStorm logo

PhpStorm

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

PhpStorm
Laravel Cloud logo

Laravel Cloud

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

Laravel Cloud
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
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
Lucky Media logo

Lucky Media

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

Lucky Media
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 →
Bagisto Visual: Theme Framework with Visual Editor for Laravel E-commerce image

Bagisto Visual: Theme Framework with Visual Editor for Laravel E-commerce

Read article
Automate Laravel Herd Worktrees with This Claude Code Skill image

Automate Laravel Herd Worktrees with This Claude Code Skill

Read article
Laravel Boost v2.0 Released with Skills Support image

Laravel Boost v2.0 Released with Skills Support

Read article
Laravel Debugbar v4.0.0 is released image

Laravel Debugbar v4.0.0 is released

Read article
Radiance: Generate Deterministic Mesh Gradient Avatars in PHP image

Radiance: Generate Deterministic Mesh Gradient Avatars in PHP

Read article
Speeding Up Laravel News With Cloudflare image

Speeding Up Laravel News With Cloudflare

Read article