Join the Mastering Laravel community to level up your skills and get trusted advice

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
CodeRabbit

CodeRabbit is an AI-powered code review tool that specializes in PHP and Laravel, running PHPStan and offering automated PR analysis, security checks, and more

Visit CodeRabbit
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 $2500/month. Get 160 hours of dedicated expertise & a risk-free 15-day trial. Schedule a call now!

Bacancy
Laravel Forge logo

Laravel Forge

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

Laravel Forge
Tinkerwell logo

Tinkerwell

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

Tinkerwell
Cut PHP Code Review Time & Bugs into Half with CodeRabbit logo

Cut PHP Code Review Time & Bugs into Half with CodeRabbit

CodeRabbit is an AI-powered code review tool that specializes in PHP and Laravel, running PHPStan and offering automated PR analysis, security checks, and custom review features while remaining free for open-source projects.

Cut PHP Code Review Time & Bugs into Half with CodeRabbit
Join the Mastering Laravel community logo

Join the Mastering Laravel community

Connect with experienced developers in a friendly, noise-free environment. Get insights, share ideas, and find support for your coding challenges. Join us today and elevate your Laravel skills!

Join the Mastering Laravel community
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
Lunar: Laravel E-Commerce logo

Lunar: Laravel E-Commerce

E-Commerce for Laravel. An open-source package that brings the power of modern headless e-commerce functionality to Laravel.

Lunar: Laravel E-Commerce
LaraJobs logo

LaraJobs

The official Laravel job board

LaraJobs
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 →
Auto-translate Application Strings with Laratext image

Auto-translate Application Strings with Laratext

Read article
Simplify Factory Associations with Laravel's UseFactory Attribute image

Simplify Factory Associations with Laravel's UseFactory Attribute

Read article
Improved Installation and Frontend Hooks in Laravel Echo 2.1 image

Improved Installation and Frontend Hooks in Laravel Echo 2.1

Read article
Filter Model Attributes with Laravel's New except() Method image

Filter Model Attributes with Laravel's New except() Method

Read article
Arr::from() Method in Laravel 12.14 image

Arr::from() Method in Laravel 12.14

Read article
Streamline API Resources with Laravel's Fluent Methods image

Streamline API Resources with Laravel's Fluent Methods

Read article