Introduction

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

    • Email

    • 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.