filament/widgets
Filament Widgets provides the widget system for Filament panels, letting you build dashboards with stats, charts, tables, and custom widgets. Configure dashboard layouts, poll for updates, and reuse widget components across admin panels and resources.
Architecture fit
filament/widgets is a subtree split of the main filamentphp/filament monorepo, not an independent library. It ships Filament's Widget base class, the StatsOverviewWidget/ChartWidget/TableWidget primitives, and the Blade/Tailwind layout scaffolding. Its natural home is an existing Filament panel; it is a poor fit for anything that is not Laravel + Livewire.Dashboard pages already accept a getWidgets() array. Effort is dominated by data-source and permission work, not by integration.Integration feasibility
composer require filament/widgets (or, better, the parent filament/filament, which is what virtually all deployments should pull), one artisan scaffold, one Blade view, one registration call. A credible spike is 1–2 engineer-days end to end including a real query.mount, updates, and hydration behavior are not inherited for free.Technical risk
Dependents: 0 is a measurement artifact of the subtree split — real consumption is via filament/filament. Do not read it as low adoption. Conversely, do not assume filament/widgets has an independent release train; its versions track monorepo tags, so pinning discipline matters.Key questions
filament/widgets standalone or via filament/filament? (Default answer: the meta-package, unless we explicitly want widgets without panels.)Stack fit
Migration path
Compatibility
protected static string $view explicitly rather than relying on inference.Sequencing
canView()/shouldRender() mapped to policies).defer/lazy loading where render cost is measurable.Maintenance
Support
Scaling
Widget::group()), which shortens onboarding for new dashboard work. The corresponding risk is widget sprawl: dozens of one-off widgets with divergent conventions. Mitigate with a registry and a PR checklist.Failure modes
!important.Ramp-up
How can I help you explore Laravel packages today?