DashArrange plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

DashArrange

The DashArrange plugin allows users to customize their dashboard widgets with drag & drop functionality

Tags: Panels
Supported versions:
4.x
Shreejan Pandit avatar Author: Shreejan Pandit

Documentation

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.

The author

Shreejan Pandit avatar Author: Shreejan Pandit

I am Laravel developer with a focus on building efficient and scalable web applications. Eager to expand my expertise in Laravel and Filament; committed to learning and delivering high-quality solutions while contributing to collaborative projects.

Plugins
2
Stars
99

From the same author