Creating admin dashboards in Laravel can be time consuming. Laravel Filament simplifies this by providing a lightweight, flexible, and open source admin panel that’s beginner friendly yet powerful for advanced applications.
In this guide, we’ll explore:
- Installing and configuring Laravel Filament
- Accessing the default Admin panel
- Creating admin users and resources (e.g., Customer module)
- Implementing custom actions
- Setting up multi panel dashboards (e.g., Admin and Employee panels)
- Understanding its open source benefits and ecosystem
What is Laravel Filament?
Laravel Filament is a free, open source admin panel framework for Laravel applications. It provides ready to use dashboards, CRUD generation, and multi panel support while staying lightweight and developer friendly.
License:
Filament is released under the MIT License, which means you can use it freely in personal and commercial projects, modify it, and redistribute it without restrictions.
Key features:
- Open source and community driven: Actively maintained on GitHub with worldwide contributions.
- Modern UI: Built with Tailwind CSS, responsive and accessible.
- Rapid CRUD generation: Auto generates forms and tables for your models.
- Multi panel support: Perfect for Admin, Staff, or Employee dashboards.
- Extensible and customizable: Add widgets, actions, and custom components easily.
- Multi tenancy support: Ideal for SaaS and multi client apps.
- Integration friendly: Works with Spatie Permissions for role based access control
Prerequisites
Before you start, ensure you have:
- Laravel 10+ installed
- PHP 8.1+ and Composer installed
- Basic understanding of Laravel models and migrations
Step 1: Install Laravel Filament
Open your terminal and run:
composer require filament/filament
composer require filament/filament
Publish the configuration file:
php artisan vendor:publish --tag=filament-config
Run migrations:
php artisan migrate
Step 2: Access the Default Admin Panel
Filament’s default panel is available at:
http://your-app-url/admin
This Admin panel comes pre configured for dashboards, user management, and resource creation. You’ll need an admin user to log in.
Step 3: Create an Admin User
Use Filament’s built in command:
php artisan make:filament-user
You’ll be prompted to enter:
- Name
- Password
After creating the user, you can log in at /admin.
Step 4: Create a Customer Resource
php artisan make:model Customer -m
4.1 Create the Model & Migration
Update the migration file:
Schema::create('customers', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->string('phone')->nullable();
$table->timestamps();
});
Run:
php artisan migrate
4.2 Generate the Filament Resource
php artisan make:filament-resource Customer
4.3 Define Form Fields
Edit CustomerResource.php:
public static function form(Form $form): Form
{
return $form->schema([
TextInput::make('name')->required()->maxLength(255),
TextInput::make('email')->email()->required(),
TextInput::make('phone')->tel()->maxLength(15),
]);
}
4.4 Define Table Columns
public static function table(Table $table): Table
{
return $table->columns([
TextColumn::make('name')->sortable()->searchable(),
TextColumn::make('email')->sortable()->searchable(),
TextColumn::make('phone'),
]);
}
Step 5: Add Custom Actions
You can add actions (e.g., Send Welcome Email) to tables:
public static function table(Table $table): Table
{
return $table->columns([
TextColumn::make('name'),
TextColumn::make('email'),
])->actions([
Action::make('sendWelcomeEmail')
->label('Send Welcome Email')
->action(fn (Customer $record) => $record->sendWelcomeEmail())
->requiresConfirmation()
->color('success'),
]);
}
Step 6: Create an Employee Panel (Multi Panel Setup)
6.1 Generate the Panel
php artisan make:filament-panel Employee
This will create a new configuration for the Employee panel (e.g.,/employee route).
6.2 Customize the Panel
- Update brand name in config/filament.php:
'brand' => 'Employee Panel',
- Assign authentication guard:
'auth.guard' => 'employee',
6.3 Role & Permission Control (Spatie)
Install Spatie Permissions:
composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate
Assign roles to users (e.g.,
public static function canViewAny(): bool
{
return auth()->user()->hasRole('employee');
}
Step 7: Branding and Navigation
You can fully customize Filament branding and menus:
- Update brand name and logo in config/filament.php
- Add custom navigation menus for each panel
- Tailwind CSS support for theme customization
Example:
'brand' => 'My Company Admin',
Why Choose Laravel Filament (Open Source Benefits)
- MIT Licensed (Open Source): Free for personal and commercial use.
- Community driven: Active GitHub repository with frequent updates and plugins.
- Modern UI: Tailwind CSS based, responsive, and accessible.
- Feature rich:
1. CRUD generation
2. Form & Table builders
3. Widgets & custom dashboards
4. Multi panel and multi tenant support
5. Role & permission integration (Spatie) - Developer friendly: Simple commands, clean API, and excellent docs.
- Thriving ecosystem: Extensions for charts, notifications, file management, and more.
- No licensing costs: Perfect for startups and enterprise solutions alike.
Result
After completing these steps, you’ll have:
- A default Admin panel with login and dashboard
- A Customer resource with full CRUD functionality
- Custom actions for quick tasks
- A separate Employee panel with role based access
Key Learnings
- Filament simplifies Laravel admin development
- Multi panel setup supports role specific dashboards
- Actions enhance interactivity without extra routes
- Integrates well with Spatie Permission for RBAC

Conclusion & CTA
Laravel Filament is a powerful, open source tool for building modern admin dashboards quickly. Whether you need a simple CRUD panel or a multi role, multi tenant dashboard, Filament adapts to your project needs.
Need help building a Laravel Filament dashboard?
Contact us, we create scalable and elegant admin solutions for businesses of all sizes.