DEV Community

Cover image for Filament v5 Released: What's New, What Changed, and Should You Upgrade?
Hafiz
Hafiz

Posted on • Originally published at hafiz.dev

Filament v5 Released: What's New, What Changed, and Should You Upgrade?

Originally published at hafiz.dev


Filament v5 landed on January 16th, 2026. If you've been using Filament for your Laravel admin panels, you've probably seen the announcements and wondered: what's actually new? Should I upgrade right now?

I've gone through the official release announcement, the upgrade guide, and the Livewire v4 documentation to break this down for you.

The Short Version

Here's the thing that might surprise you: Filament v5 has no new features compared to v4. Zero. The entire reason for this major version bump is Livewire v4 support.

That's it. That's the release.

But before you close this tab thinking there's nothing to see here, hear me out. The Livewire v4 features you unlock by upgrading are pretty significant, and the upgrade process is about as painless as major version upgrades get.

Why a Major Version for Just Livewire Support?

The Filament team made a deliberate choice here. They could have shipped Livewire v4 support as a minor update to Filament v4, but that would have potentially broken projects that depend on Livewire internally.

By making it a major version, projects that don't explicitly require Livewire won't get unexpected breakage during routine composer update runs. It's the semver-respecting approach, and I appreciate it.

The team has also confirmed they'll continue pushing features to both v4 and v5, so you're not being left behind if you can't upgrade immediately.

Requirements

Before you upgrade, make sure your project meets these requirements:

  • PHP 8.2+
  • Laravel 11.28+
  • Livewire 4.0+
  • Tailwind CSS 4.0+

That Tailwind v4 requirement might be the biggest hurdle for some projects. If you're still on Tailwind v3 with a custom theme, you'll need to upgrade Tailwind first.

The Upgrade Process

The upgrade is straightforward. Filament provides an automated script that handles most of the work:

composer require filament/upgrade:"^5.0" -W --dev

vendor/bin/filament-v5
Enter fullscreen mode Exit fullscreen mode

The script will analyze your project and output specific composer commands tailored to your setup. Run those commands:

# These will be specific to your project
composer require filament/filament:"^5.0" -W --no-update
composer update
Enter fullscreen mode Exit fullscreen mode

Once done, remove the upgrade package:

composer remove filament/upgrade --dev
Enter fullscreen mode Exit fullscreen mode

If you're on Windows PowerShell, use ~5.0 instead of ^5.0 since PowerShell ignores the caret character.

What About Custom Livewire Components?

If your project has custom Livewire components outside of Filament, you'll also need to follow the Livewire v4 upgrade guide. This is where things might require some manual work.

The main breaking changes in Livewire v4 include:

  • Config file updates: Several keys have been renamed. layout becomes component_layout, and the default layout now uses the layouts:: namespace.
  • wire:model behavior change: It no longer responds to events bubbling up from child elements. Add .deep if you relied on that behavior.
  • Component tags must be closed: <livewire:component> needs to be <livewire:component /> now.
  • wire:transition uses View Transitions API: If you used modifiers like .opacity or .duration, those are gone.

For most Filament-only projects, you won't need to worry about these. The Filament upgrade script handles what it can.

Plugin Compatibility: The Real Consideration

Here's where you might want to pause. Some Filament plugins may not be v5-compatible yet.

The upgrade script will check your plugins and warn you about compatibility issues. You have a few options:

  1. Wait until your plugins are updated
  2. Temporarily remove incompatible plugins from composer.json
  3. Find alternatives that support v5
  4. Contribute PRs to help plugin authors upgrade

If your project relies heavily on third-party plugins, I'd recommend checking their GitHub repos for v5 support before upgrading.

What Livewire v4 Actually Brings

Now for the exciting part. Here's what you get access to once you're on Filament v5 with Livewire v4:

Single-File Components

You can now write your Livewire components with PHP and Blade in one file:

<?php
// resources/views/components/⚡counter.blade.php

use Livewire\Component;

new class extends Component {
    public $count = 0;

    public function increment() {
        $this->count++;
    }
};
?>

<div>
    <h1>{{ $count }}</h1>
    <button wire:click="increment">+</button>
</div>
Enter fullscreen mode Exit fullscreen mode

Yes, that lightning bolt emoji in the filename is intentional. You can disable it if emojis aren't your thing.

Islands

This is the big one for performance. Islands let you create isolated regions within a component that update independently:

@island(name: 'stats', lazy: true)
    <div>{{ $this->expensiveStats }}</div>
@endisland
Enter fullscreen mode Exit fullscreen mode

When you click "Refresh" on an island, only that island re-renders. The rest stays untouched. Previously, you'd need to extract this into a separate child component.

wire:sort for Drag-and-Drop

Built-in sortable lists without external packages:

<ul wire:sort="updateOrder">
    @foreach ($items as $item)
        <li wire:sort:item="{{ $item->id }}" wire:key="{{ $item->id }}">
            {{ $item->name }}
        </li>
    @endforeach
</ul>
Enter fullscreen mode Exit fullscreen mode

Async Actions

Run actions in parallel without blocking other requests:

<button wire:click.async="logActivity">Track</button>
Enter fullscreen mode Exit fullscreen mode

Or with the PHP attribute:

#[Async]
public function logActivity() { ... }
Enter fullscreen mode Exit fullscreen mode

Performance Improvements

Livewire v4 brings non-blocking polling and parallel live updates. wire:model.live requests now run in parallel, making typing feel more responsive.

Introducing Filament Blueprint

Alongside v5, the Filament team also launched Filament Blueprint, a premium tool for AI-assisted development.

If you use AI coding agents like Claude Code, Cursor, or GitHub Copilot to build Filament applications, you've probably noticed they often get namespaces wrong, miss configuration details, or create layouts that don't quite work.

Blueprint is a Laravel Boost extension that feeds your AI agent comprehensive knowledge about Filament's components and best practices. Instead of vague implementation plans, you get detailed specifications with exact component references, CLI commands, and configuration chains.

It works with both Filament v4 and v5.

This isn't something everyone needs, but if AI-assisted development is part of your workflow, it might be worth checking out.

Should You Upgrade Now?

Here's my take:

Upgrade now if:

  • Your plugins are v5-compatible
  • You're already on Tailwind v4
  • You want access to Livewire v4 features like Islands
  • You're starting a new project

Wait if:

  • Critical plugins don't support v5 yet
  • You're on Tailwind v3 with extensive custom theming
  • Your project is in a critical phase and stability matters more than new features

The good news is there's no pressure. Filament v4 will continue receiving features, and the upgrade path will only get smoother as more plugins update.

Final Thoughts

Filament v5 is a smart, conservative release. The team prioritized stability over flashy new features, and the automated upgrade script makes the transition as painless as possible.

The real value here is unlocking Livewire v4. Features like Islands and async actions can significantly improve your admin panel's performance and user experience.

If you've been waiting for the right time to upgrade, this is probably it. The upgrade script handles most of the work, and the ecosystem is catching up quickly.

Resources


Have questions about upgrading your Filament project? I help Laravel developers with admin panel architecture and optimization. Get in touch.

Top comments (0)