Customizable Dashboard Widgets plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Customizable Dashboard Widgets

Community

Let users customize Filament dashboards: drag, resize, and arrange widgets on a permission-aware collage grid.

Tags: Widget Panels Theme
Supported versions:
5.x
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
John Michael Rivera Gonzalez avatar Author: John Michael Rivera Gonzalez

Documentation

Customizable Dashboard Widgets cover Plugins list thumbnail

Customizable Dashboard Widgets

Customize Filament dashboards: drag, resize, and arrange widgets.

Give every Filament user a personal desktop: add widgets, drag them into place, resize from any edge, and save the layout. Your existing Filament widgets keep working — this plugin turns the dashboard into a collage canvas with permissions, defaults, templates, and an admin lock.

Compatible with Filament v5 · PHP 8.2+ · English & Spanish · Dark mode · Free (MIT)

Dashboard — light mode


#Highlights

  • Fits real work — users arrange KPIs, charts, and tables the way they think, not in a fixed Filament column grid
  • Zero rewrite — keep your widgets; the plugin wraps them
  • Permission-aware — only show widgets each user can view
  • Admin control — company default layout, apply to everyone, lock customization
  • Templates — save, restore, and share layouts across the panel
  • Charts that follow the cell — ApexCharts / stats reflow when resized

#Dark mode

Dark mode dashboard

#Customize from the avatar menu

Open Customize dashboard from the user menu — no extra pages required.

Avatar menu — Customize dashboard

#Edit mode

Drag widgets, resize from any edge, remove with ×, and save personal or company defaults.

Edit mode — drag, resize, remove


#Feature tour

#Collage grid

  • 24-column fine grid (45px comfortable / 32px compact)
  • Drag freely with float gaps (drop small widgets into leftover holes)
  • Resize from all edges and corners
  • Grab cursor (open / closed hand)
  • Escape cancels edit mode
  • Mobile stacks to one column (drag disabled under 768px)

#Catalog & layouts

  • Catalog from getWidgets() + search
  • Personal layout (“Save for me”)
  • Panel default (“Save as default for everyone”)
  • Apply default to all users
  • Auto-packed layout when nothing is saved yet

#Templates

  • Save / restore named templates
  • Share templates with other users on the same panel
  • Optional: disable with ->templates(false)

#Admin (avatar menu)

Action Purpose
Customize dashboard Opens /?customize=1

#While editing (header)

Save for me · Cancel · Reset to default · Save as default · Apply to all users


#Quick start

composer require johnrivera7/filament-custom-dashboard-widgets
php artisan filament-widget-grid:install
use JohnRivera7\FilamentWidgetGrid\FilamentWidgetGridPlugin;

$panel->plugins([
    FilamentWidgetGridPlugin::make()
        ->canViewWidget(fn (string $widget): bool => auth()->user()?->can('view', $widget) ?? false)
        ->canCustomize(fn (): bool => auth()->check())
        ->canManageDefaults(fn (): bool => auth()->user()?->hasRole('super_admin') ?? false),
]);
use Filament\Pages\Dashboard as BaseDashboard;
use JohnRivera7\FilamentWidgetGrid\Concerns\HasWidgetGrid;

class Dashboard extends BaseDashboard
{
    use HasWidgetGrid;

    public function getWidgets(): array
    {
        return [
            \App\Filament\Widgets\StatsOverview::class,
            \App\Filament\Widgets\OrdersChart::class,
        ];
    }
}

Open customize from the avatar menu or visit /?customize=1.


#Configuration

FilamentWidgetGridPlugin::make()
    ->columns(24)
    ->cellHeight(45)
    ->maxHeight(60)
    ->density('comfortable') // or 'compact'
    ->float(true)
    ->templates(true)
    ->canViewWidget(...)
    ->canCustomize(...)
    ->canManageDefaults(...)
    ->canShareTemplates(...);

Optional widget author hints (not required for drag/resize):

public static int $gridW = 12;
public static int $gridH = 10;
public static int $gridMinH = 4;
public static bool $gridSizeToContent = true;

$gridMinW is ignored so cells can always shrink.


#Migrating from dash-arrange

php artisan filament-widget-grid:import-dash-arrange --panel=admin

#License

MIT — free to use. See LICENSE.

The author

John Michael Rivera Gonzalez avatar Author: John Michael Rivera Gonzalez

I am a full-stack developer focused on building reliable web platforms for education, enterprise, and business operations. I work mainly with Laravel and Filament, creating admin panels, reusable packages, and integrations that solve real production needs.

I also have a background in cybersecurity as an ethical hacker, which shapes how I design and review software: secure authentication flows, proper access control, hardening production environments, and thinking about real-world attack surfaces before they become problems.

I contribute to the Filament ecosystem by developing open-source panel plugins, with a strong focus on authentication, enterprise SSO, and tools that help teams manage complex workflows from a clean admin interface. I follow official Filament standards and aim to publish practical, well-documented packages that developers can adopt with confidence.

Beyond Filament, I develop Moodle plugins and customizations for e-learning platforms, including integrations, Microsoft Teams modules, learning activities, custom course formats, and automated cloud backup solutions. I also build Laravel applications for insurance, commercial, corporate, and agricultural management systems.

My infrastructure work includes high-availability setups with PostgreSQL clusters, GlusterFS, Nginx, and Consul, as well as Odoo ERP and POS implementations. I enjoy working across the full stack—from backend architecture and DevOps automation to polished admin interfaces and end-user workflows.

I publish open-source packages on Packagist and GitHub, and I plan to keep expanding my contributions to Filament with new panel plugins over time.

Plugins
4
Stars
7

From the same author