|
| 1 | +--- |
| 2 | +title: "Filament v4 is Stable!" |
| 3 | +slug: alexandersix-filament-v4-is-stable |
| 4 | +author_slug: alexandersix |
| 5 | +publish_date: 2025-08-12 |
| 6 | +categories: [general] |
| 7 | +type_slug: news |
| 8 | +--- |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +It's official! As of today, August 12, 2025, Filament v4 is officially stable! |
| 13 | +And in large part, that is thanks to our incredible community and all the help |
| 14 | +with testing, bug fixing, and overall recommendations. We don't take for granted |
| 15 | +all of you and the work you've put in to help us get to where we are today. |
| 16 | + |
| 17 | +If you haven't been keeping up with the news regarding the v4 beta, or if you're |
| 18 | +new to Filament as of version 4, you'll be very happy to know that we have |
| 19 | +added in some incredible updates, new features, and overall performance enhancements |
| 20 | +to help you build even more incredible applications with Filament. There are |
| 21 | +WAY too many to list out here, but for a full rundown of the major updates present |
| 22 | +in v4, you can check out this incredible article written by the Filament Core Team's |
| 23 | +very own Leandro: ["What's new in Filament v4?"](https://filamentphp.com/content/leandrocfe-whats-new-in-filament-v4) |
| 24 | + |
| 25 | +## What to expect from our favorite updates |
| 26 | + |
| 27 | +We're very excited about the v4 release, so to celebrate, we wanted to share a |
| 28 | +few of our favorite features and what you can expect from them when using the |
| 29 | +new v4 release! |
| 30 | + |
| 31 | +### Performance Enhancements |
| 32 | + |
| 33 | +You know we couldn't make a list of our favorite updates without touching |
| 34 | +on the performance enhancements in v4. Whether you're building a brand-new, |
| 35 | +greenfield application on v4 or updating an older version of Filament to v4, |
| 36 | +you'll immediately notice some nice speed boosts across your application. |
| 37 | + |
| 38 | +Out of the box, without any adjustments or code changes, you'll immediately |
| 39 | +receive a noticeable performance improvement when using Filament's tables! |
| 40 | +We have done a lot of work optimizing how the rendering code runs, |
| 41 | +and during our internal testing, we see improvements of around 3x for large |
| 42 | +datasets! |
| 43 | + |
| 44 | +In addition, we've also added in a custom partial rendering solution that |
| 45 | +will allow you to skip expensive component re-renders when they are not needed. |
| 46 | +These improvements don't come for free, but they are opt-in with the use of |
| 47 | +methods like `partiallyRenderComponentsAfterStateUpdated()` and |
| 48 | +`skipRenderAfterStateUpdated()`. There's more to dig into here, so take a |
| 49 | +look at the [documentation for partial rendering](https://filamentphp.com/docs/4.x/forms/overview#field-partial-rendering) |
| 50 | +for more information on what each of these methods do, specifically. |
| 51 | + |
| 52 | +If video content is more your speed (ha!), take a look at |
| 53 | +[this video from Nuno](https://www.youtube.com/watch?v=uJfFURplMQg) where |
| 54 | +he and Dan dive more deeply into the performance improvements found in v4! |
| 55 | + |
| 56 | +### Schemas |
| 57 | + |
| 58 | +Ever wanted to easily combine Filament's form fields, infolist entries, |
| 59 | +layout components, and prime components (the basic building blocks of |
| 60 | +most applications)? Previously, this was a bit of a pain to handle, but |
| 61 | +in v4, we've squished all of these together into what we're calling "Schemas" |
| 62 | +to more easily allow you to mix and match these different components |
| 63 | +together to create truly custom, ergonomic server-driven UIs. You can |
| 64 | +consider this a familiar and easy-to-understand re-imagining of how to |
| 65 | +combine the building blocks that Filament provides into something that |
| 66 | +works exactly as you (and your users) would expect in your app. |
| 67 | + |
| 68 | +For a full list of the available Schema components and more information |
| 69 | +about how they're used in general, [check out the documentation](https://filamentphp.com/docs/4.x/schemas/overview#introduction)! |
| 70 | + |
| 71 | +For those of you who prefer to glance at some code, here's an example |
| 72 | +schema direct from the documentation! You can see that, within the |
| 73 | +same schema (`form`, in this example), we're using components that were |
| 74 | +previously located in the Layout, Infolist, and Form namespaces! |
| 75 | + |
| 76 | +```php |
| 77 | +use Filament\Forms\Components\Checkbox; |
| 78 | +use Filament\Forms\Components\Select; |
| 79 | +use Filament\Forms\Components\TextInput; |
| 80 | +use Filament\Infolists\Components\TextEntry; |
| 81 | +use Filament\Schemas\Components\Section; |
| 82 | + |
| 83 | +$schema |
| 84 | + ->components([ |
| 85 | + Grid::make(2) |
| 86 | + ->schema([ |
| 87 | + Section::make('Details') |
| 88 | + ->schema([ |
| 89 | + TextInput::make('name'), |
| 90 | + Select::make('position') |
| 91 | + ->options([ |
| 92 | + 'developer' => 'Developer', |
| 93 | + 'designer' => 'Designer', |
| 94 | + ]), |
| 95 | + Checkbox::make('is_admin'), |
| 96 | + ]), |
| 97 | + Section::make('Auditing') |
| 98 | + ->schema([ |
| 99 | + TextEntry::make('created_at') |
| 100 | + ->dateTime(), |
| 101 | + TextEntry::make('updated_at') |
| 102 | + ->dateTime(), |
| 103 | + ]), |
| 104 | + ]), |
| 105 | + ]) |
| 106 | +``` |
| 107 | + |
| 108 | +Hopefully this starts the gears turning in your brain! We're |
| 109 | +so excited to see what people are capable of with this new, simple |
| 110 | +to use system in place in v4. |
| 111 | + |
| 112 | +### Custom Data Tables |
| 113 | + |
| 114 | +I mean, it's about time, right? |
| 115 | + |
| 116 | +In all seriousness, we're so excited about our new table implementation |
| 117 | +and the fact that it now allows arbitrary, non-Model-backed data to be |
| 118 | +displayed! Now it's just as simple as giving your Filament Table an array |
| 119 | +of data to be shown, and we handle the rest for you. No more wrestling with |
| 120 | +the underlying Filament components or deferring to Sushi (a great package |
| 121 | +in its own right, though) to add custom data to your tables! |
| 122 | + |
| 123 | +The best part is that in this new implementation, custom data, whether |
| 124 | +hard-coded, retrieved from an external API, or gleaned from anywhere else, |
| 125 | +receives all the same niceties that typical Model-backed data gets. This |
| 126 | +means your custom data can be paginated, searched, sorted, and it can |
| 127 | +even have Actions attached to it! |
| 128 | + |
| 129 | +For more information, check our our [custom data documentation](https://filamentphp.com/docs/4.x/tables/custom-data)! |
| 130 | + |
| 131 | +### Actions, Actions, Actions |
| 132 | + |
| 133 | +This one is a short one, but a very, very sweet one. |
| 134 | + |
| 135 | +Admit it, we've all done it before: we've wanted to add an Action |
| 136 | +somewhere in our Filament application, but we imported the _wrong_ |
| 137 | +Action type from the _wrong_ namespace. It's not a hard error to |
| 138 | +fix, but it's incredibly irritating when it happens. |
| 139 | + |
| 140 | +In v4, this is an issue (mostly) of the past! |
| 141 | + |
| 142 | +We have now unified all of the action classes, so instead of needing |
| 143 | +to specifically use the `Action` class that corresponds to your |
| 144 | +given context, all actions now use a single `Filament\Actions` |
| 145 | +namespace. And, in addition to Action imports being much easier now, |
| 146 | +this also means that you can more easily create portable Actions |
| 147 | +which can be reused across different contexts (Forms, Infolists, Tables, etc.). |
| 148 | + |
| 149 | +## There's more where that came from |
| 150 | + |
| 151 | +These are just a small handful of the incredible updates that have |
| 152 | +been packed into the v4 release. |
| 153 | + |
| 154 | +We're probably a bit biased in saying it, but we think this is easily |
| 155 | +one of the greatest Filament releases to date! You can read all about |
| 156 | +the update in the documentation or in Leandro's v4 overview post, |
| 157 | +but in my opinion, the best way to see what's available is to give it |
| 158 | +a try for yourself! Installation is as easy as ever, and the upgrade |
| 159 | +path from v3 -> v4 is simple and almost entirely automated thanks to |
| 160 | +our custom upgrade scripts (think Laravel Shift, but for Filament). |
| 161 | + |
| 162 | +Once again, we have to give a huge thank you to the entire community |
| 163 | +for their constant encouragement and support, as well as for their |
| 164 | +contributions to this release. Filament wouldn't be half the project |
| 165 | +it is today without all of you, and we're eternally grateful to have |
| 166 | +you along for the ride. |
| 167 | + |
| 168 | +Give v4 a whirl, and let us know what you think! We'd love to hear from |
| 169 | +you in the Filament Discord server, especially if you're building |
| 170 | +something that you're proud of using Filament! |
0 commit comments