Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Dynamic Dashboard

Filament Dynamic Dashboard Laravel Package

mddev31/filament-dynamic-dashboard

End-user-configurable dashboards for Filament v4/5: drag, resize, and move widgets across named sections, with JSON layout presets, per-dashboard filters, typed widget settings, and optional Spatie role-based visibility.

View on GitHub
Deep Wiki
Context7

Filament Dynamic Dashboard turns Filament's static widget grid into a fully end-user-configurable dashboard system. Users drag widgets across named sections, resize them from corner handles, and layouts persist in a single round-trip via JSON templates. Powered by GridStack.js, it supports 8 shipped layout presets, per-dashboard filters, and widget settings hydrated as typed properties.

  • Drag, resize, and move widgets within or across sections, constrained by widget class methods.
  • JSON layout templates with named sections, column counts, row spans, and row heights.
  • Multiple dashboards per page, each with independent filters, defaults, and visibility toggles.
  • Personal dashboards visible only to their creator, plus optional Spatie Permission role-based access.
  • Lockable, read-only dashboards with custom presets you can add as JSON files.
Frequently asked questions about Filament Dynamic Dashboard
What does mddev31/filament-dynamic-dashboard do?
It turns Filament's static widget grid into an end-user-configurable dashboard canvas where users can drag, resize, and move widgets across named sections. Layouts are defined in plain JSON files, while per-instance placement and widget settings are persisted in the database. It is built for Filament v4/5 and Laravel 10+ and uses GridStack.js for the client-side interactions.
How do I install filament-dynamic-dashboard in a Laravel Filament app?
Install it with composer require mddev31/filament-dynamic-dashboard, then publish the migrations, config, and translations. Run php artisan migrate and php artisan filament:assets so the GridStack.js assets are available. The README shows a minimal dashboard page and widget in under 40 lines, which is the fastest way to confirm the package is wired up correctly.
Which Laravel and Filament versions are supported?
The package requires PHP 8.3 or newer, Laravel 10/11/12/13, and Filament 4.1.10 or newer. Filament 5 is supported, but Filament v3 is not compatible. Verify the exact Filament and Laravel versions in your application's CI rather than relying only on the README badges.
How do I make an existing Filament widget work with the dynamic dashboard?
Your widget must implement the DynamicWidget contract and may use optional traits such as HasSizeDefaults and HasEmptySettings. In practice that means adding the required label, size constraint methods, settings schema, and settings casts to each widget class. Existing widgets need to be retrofitted individually, so brownfield adoption takes more effort than a greenfield dashboard.
Can users create personal dashboards that are separate from shared dashboards?
Yes. A dashboard can be marked as personal, which makes it visible only to its creator while global dashboards remain shared. The dashboard picker groups personal dashboards separately with a user icon. This is useful for letting users build private views without changing the shared team dashboard.
How are dashboard layouts defined and persisted?
Layout templates are JSON files that define named sections, per-section column counts, row spans, and row heights. The database stores per-instance placement values such as section_slug, x, y, w, and h, plus widget settings as JSON. The JSON templates ship as deployment artifacts, so a missing or malformed template can affect rendering and should be validated in your deployment process.
Does filament-dynamic-dashboard support role-based dashboard visibility?
It offers optional Spatie Laravel Permission integration for role-based dashboard visibility. Dashboards also have visibility toggles, and widgets can use static canEdit and canDisplay methods for simple access rules. For complex policy logic, verify that the static methods are sufficient for your authorization requirements.
How does the package handle concurrent layout edits?
The README describes layout persistence as a single round-trip but does not document debouncing, optimistic locking, or conflict resolution. If two managers edit the same dashboard at the same time, assume last-write-wins unless you verify otherwise. For production use, test concurrent editing behavior and decide whether that risk is acceptable.
What should I check before upgrading from v1 to v2?
The v1-to-v2 upgrade is a hard schema pivot with contract changes to every widget, and the migration is explicitly non-reversible because down() throws on purpose. It drops tables and columns, so rehearse the upgrade against a copy of production data and take a backup first. Also review the widget contract changes before upgrading a live application.
Is filament-dynamic-dashboard production-ready and well maintained?
Treat it as vendor-at-risk: the project has a single author, around 10 stars, and no dependents, so you may need to fork it or contribute patches. Check for a test suite, static analysis, and a CI matrix covering your exact Filament and Laravel versions. Also confirm the release and semver policy before depending on it for long-lived production dashboards.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource