shreejan/dash-arrange

A Filament plugin for customizable dashboard widgets with drag & drop functionality
5,232 4
Install
composer require shreejan/dash-arrange
Latest Version:2.0.0
PHP:^8.2
License:MIT
Last Updated:May 12, 2026
Links: GitHub  ·  Packagist
Maintainer: prazwal-bns

DashArrange

A Filament plugin that allows users to customize their dashboard widgets with drag & drop functionality.

GitHub

Installation

composer require shreejan/dash-arrange

Setup

Quick Setup (Recommended)

Run the install command which will automatically:

  • Publish and run migrations
  • Publish the Dashboard stub
php artisan dash-arrange:install

Make sure your app/Providers/Filament/AdminPanelProvider.php uses the correct Dashboard class:

use App\Filament\Pages\Dashboard; // Instead of Filament\Pages\Dashboard

That's it! The package is now ready to use.

Manual Setup

If you prefer to set up manually:

1. Publish and Run Migrations
php artisan vendor:publish --tag=dash-arrange-migrations
php artisan vendor:publish --tag=dash-arrange-dashboard
php artisan migrate
2. Update Your Dashboard Page

Update your app/Filament/Pages/Dashboard.php to use DashArrange:

<?php

namespace App\Filament\Pages;

use Shreejan\DashArrange\Traits\HasDashArrange;
use Filament\Pages\Dashboard as BaseDashboard;

class Dashboard extends BaseDashboard
{
    use HasDashArrange;

    protected string $view = 'dash-arrange::dashboard';

    public function mount(): void
    {
        // Initialize DashArrange functionality
        $this->mountHasDashArrange();
    }
}
3. Update AdminPanelProvider

Make sure your app/Providers/Filament/AdminPanelProvider.php uses the correct Dashboard class:

use App\Filament\Pages\Dashboard; // Instead of Filament\Pages\Dashboard
4. (Optional) Publish Configuration
php artisan vendor:publish --tag=dash-arrange-config

Usage

Once installed, users will see a "Customize My Dashboard" button on their dashboard. They can:

  • Drag and drop widgets to reorder them
  • Show/hide widgets using checkboxes
  • Save their preferences (stored per user)
  • Revert unsaved changes with the Cancel button
  • Widget preferences are persistent and user-specific

Configuration

Edit config/dash-arrange.php to customize:

  • Grid columns: Default number of columns for the dashboard grid
  • User model: Customize the user model if needed
  • Permission checks: Add custom permission logic for widgets
  • Customize Dashboard Button:
    • customize_dashboard_title: The title text for the customize dashboard button (default: 'Customize My Dashboard')
    • customize_dashboard_button_color: The color of the customize dashboard button. Colors can be added in AdminPanelProvider.php -> colors() method (default: 'primary')

Requirements

  • PHP ^8.2
  • Filament ^4.0
  • Laravel ^12.0

Features

  • ✅ Drag & drop widget reordering
  • ✅ Show/hide widgets with checkboxes
  • ✅ User-specific preferences (stored in database)
  • ✅ Permission-based widget visibility (FilamentShield compatible)
  • ✅ Responsive grid layout
  • ✅ Widget column span support
  • ✅ Easy installation command
  • ✅ Fully customizable configuration

Support

Credits

Security

If you discover a security vulnerability within this package, please send an e-mail to shreezanpandit@gmail.com. All security vulnerabilities will be promptly addressed.

📄 License

The MIT License (MIT). Please see License File for more information.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660

Version History

Version Released PHP Laravel License
2.0.0 ^8.2 ^12.0|^13.0 MIT
1.0.0 ^8.4 ^12.0 MIT