Build apps & admin panels fast, for your bright ideas.

With a solid Laravel foundation and a polished UI, you can focus on what makes your product unique.

Filament admin panel interface showcasing form, table, and dashboard components
Try our live demo

We've built a feature-rich demo application showcasing Filament in practice. It's completely open-source and ready to explore.

Screenshot of Filament v5 demo application showing the admin panel interface with dark theme

Powered by the

TALL Stack

A proven stack that lets you build dynamic, maintainable full-stack applications without unnecessary complexity.

Almost as TALL as Atlas

Atlas, the Filament mascot

Turn PHP into polished UI

Use a declarative syntax that emphasizes clarity and long-term maintainability.

Tables

Browse and manage large datasets with configurable columns, filters, row actions, and bulk operations, all defined in PHP for seamless integration between your data models and UI.

Forms

Build complex forms using composable input components that handle state management, validation rules, inter-field dependencies, and flexible layout composition.

Infolists

Render structured, read-only record views using responsive layouts, and formatting helpers. Suitable for detail pages, side panels, and inspection-style interfaces.

Notifications

Trigger in-app notifications in response to user actions and system events, with flexible content options and integration with Laravel's notification system for seamless delivery.

Dashboard widgets

Display metrics, aggregates, charts, and recent activity using data-driven widgets that can query models, refresh automatically, and be arranged across dashboard layouts.

Action modals

Define reusable actions with buttons, dropdowns, and bulk triggers, supporting confirmation steps, modal forms, authorization checks, and synchronous or queued execution.

OrdersTable.php PostForm.php UserInfolist.php ReportGeneratedNotification.php AnalyticsWidget.php ArchivePostAction.php
 1$table
 2	->columns([
 3		TextColumn::make('number')
 4			->sortable(),
 5
 6		TextColumn::make('user.email')
 7			->label('Customer')
 8			->searchable(),
 9
10		IconColumn::make('is_priority')
11			->boolean(),
12	])
13	->filters([
14		SelectFilter::make('status'),
15	])
16	->bulkActions([
17		DeleteBulkAction::make(),
18	]);
 1$schema
 2	->components([
 3		TextInput::make('title')
 4			->required()
 5			->maxLength(255),
 6
 7		DateTimePicker::make('published_at'),
 8
 9		Toggle::make('is_featured')
10			->live(),
11
12		Textarea::make('featured_description')
13			->maxLength(500)
14			->visible(function (Get $get): bool {
15				return $get('is_featured');
16			}),
17	])
18	->columns(2);
 1$schema
 2	->components([
 3		TextEntry::make('email'),
 4
 5		TextEntry::make('roles.name')
 6			->badge()
 7			->columnSpanFull(),
 8
 9		Section::make('Verification')
10			->schema([
11				IconEntry::make('is_verified')
12					->boolean(),
13
14				TextEntry::make('next_check_at')
15					->dateTime(),
16			]),
17	])
18	->columns(2);
 1Notification::make()
 2	->title('Report generated')
 3	->body('The monthly report is ready to check.')
 4	->icon(Heroicon::DocumentChartBar)
 5	->actions([
 6		Action::make('download')
 7			->color('primary')
 8			->icon(Heroicon::ArrowDownTray)
 9			->url(route('reports.download', $report))
10
11		Action::make('view')
12			->color('gray')
13			->icon(Heroicon::Eye)
14			->url(route('reports.view', $report)),
15	])
16	->success()
17	->persistent()
18	->send();
 1$uniqueViews = $service->getUniqueViews();
 2
 3$totalSales = $service->getTotalSales();
 4$totalSalesChange = $service->getTotalSalesChange();
 5
 6return [
 7	Stat::make('Unique views', $uniqueViews)
 8		->icon(Heroicon::Eye),
 9
10	Stat::make('Total sales', $totalSales)
11		->color(($totalSalesChange >= 0)
12			? 'success'
13			: 'danger')
14		->descriptionIcon(($totalSalesChange >= 0)
15			? Heroicon::ArrowTrendingUp
16			: Heroicon::ArrowTrendingDown)
17		->description(abs($totalSalesChange) . '%'),
18];
 1Action::make('archive')
 2	->icon(Heroicon::ArchiveBox)
 3	->requiresConfirmation()
 4	->schema([
 5		TextInput::make('reason')
 6			->label('Reason for archiving')
 7			->maxLength(255),
 8	])
 9	->action(function (Post $post, array $data) {
10		$post->archive_reason = $data['reason'];
11		$post->touch('archived_at');
12
13		Notification::make()
14			->title('Post archived')
15			->body('It can no longer be edited.')
16			->success()
17			->send();
18	});

Our Premium

Sponsors

Filament is proudly open-source. It is thanks to the amazing generosity of our premium sponsors that continued development, bug fixes, and dedicated community support is possible.

Trusted by the community

Filament grows alongside the Laravel community, guided by real-world usage, feedback, and teams shipping real products.

Kevin McKee

Co-founder & CTO of Padmission

Our flagship SaaS product couldn't even exist without Filament. It is the superpower that allows a small company like mine to build world class software in a fraction of the time it takes other companies. Whenever I encounter something that's not already in the framework, the community has almost always solved the problem with a plugin. Whether coding by hand or using AI, everything just makes sense.
Wiebe Nieuwenhuis

Developer & Entrepreneur

I can't imagine creating an application without Filament anymore. It's incredibly easy and swift to use, yet highly adaptable to accommodate your own or your clients' specific requirements.
Cam Kemshal-Bell

Software Developer

Filament, seamlessly integrated with Livewire, offers a robust and efficient development experience. The combination of Filament’s user-friendly admin interface and Livewire’s real-time features enhances productivity and simplifies complex tasks. This integration has proven instrumental in our workflow.
Luis Dalmolin

CTO of Kirschbaum

Filament has become a core part of how we build at Kirschbaum. It's fast to get started with, reliable in production, looks amazing out of the box, and has genuinely helped us ship projects faster without cutting corners on quality. When a client needs a powerful admin panel or sometimes a fully fleshed-out application, Filament is our first reach. It just works!
Austin Carpenter

Director

Filament has been an absolute game-changer for us for web application development with Laravel. It's packed with features and is also highly extensible and modular, allowing us to deliver bespoke experiences to our customers every time.
Bane Stojanović

Developer

In every project that I am using where an admin panel is needed, I use Filament. I don't even think about it, two lines of code to get you started, an amazing setup experience, and unbelievable customizability. A million-dollar project that is open-sourced!
Eric Barnes

Owner of Laravel News

We use Filament to power the backend of Laravel News, and it has been a fantastic fit for our workflow. It lets us move quickly, manage content easily, and build custom admin features with minimal overhead. Filament strikes a great balance between flexibility and developer experience, and it has saved us countless hours while keeping our tools simple and reliable.
Mike Craig

President

Wow. 🤩 We've changed our entire shop to produce nothing but Filament-enabled backend applications. Filament blows any other platform out of the water, and is another reason why the Laravel ecosystem and developers like us continue to ship! 🚀
Tim Wassenburg

PHP/Laravel Developer

Filament enabled us to rapidly create complex features, with development taking only weeks instead of months. Working with Filament proved to be efficient and productive. Being backed by a supportive community was crucial for the delivery of a high-quality product.