savannabits/filament-modules
Organize your Filament admin panel into autonomous Laravel modules that work as plugins, complete with their own resources, pages, widgets, and clusters. A wrapper around nwidart/laravel-modules for easy sharing and reuse.
mode: panels (or both), each module can own its own Filament panel, with links to sibling panels grouped in the main navigation, optional new-tab behaviour, and a back-link to the main panel. This is the decision point for "should Finance and Support see different admin apps?" without building two codebases.nwidart/laravel-modules is the "buy" (well, MIT-license) option: you get module:filament:install, plus generators for resources, pages, clusters, plugins, and panels. Estimate the in-house cost of matching that scaffolding and the ongoing cost of keeping it aligned with Filament major releases before deciding to build.Coolsam\Modules\Resource / Page / widget base classes and a CanAccessTrait, but these are explicitly marked WIP. Treat authorization as your decision and your implementation; don't let this package's WIP surface become your RBAC roadmap.Adopt when most of these are true:
nwidart/laravel-modules — this is a wrapper, so that package's conventions, docs, and quirks become yours. Don't adopt it for a one-module need.merge-plugin autoload requirement in composer.json. Verify this against your CI, Docker build, and production deploy pipeline; it changes how Composer resolves module autoloads and is a real operational dependency, not a config detail.Look elsewhere (or defer) when:
discoverResources()/discoverPages() cover it, and you skip two third-party dependencies entirely.Recommended de-risking before commitment: a timeboxed spike — install into a throwaway branch, generate two modules with clusters and one module panel, run it through your deploy pipeline, and confirm the panel-scoping story ("this package wires modules and panels together but does not override Filament's per-panel registration model" — so your discovery config is still yours to get right).
For executives (one paragraph): Our admin back office is on Filament, and right now every new domain adds more files to one undifferentiated pile. This MIT-licensed package lets us split the admin into self-contained modules, each optionally its own panel, while staying a single app and a single deploy. The upside is faster parallel delivery across teams, a credible path to reusing modules across products or client projects, and an option to spin a module out as a standalone product later without a rewrite. The cost is adoption effort, a small amount of architectural discipline, and a dependency on a young, thinly-adopted open-source package maintained by one person — which we mitigate by pinning versions, forking if needed, and keeping our own tests around the boundary. Net: low cash cost, moderate technical risk, and it buys us organisational flexibility we can't easily retrofit.
For engineering (the short version): It's a thin wrapper over nwidart/laravel-modules that turns each module into a Filament plugin, adds generators (module:filament:install, module:make:filament-{resource,page,cluster,plugin,panel}), and gives you config for plugins / panels / both discovery modes, auto-registration, cluster layout, and panel grouping in navigation. Requirements are Laravel 11–13, Filament 4/5, PHP 8.3+, and you must configure laravel-modules and the Composer merge-plugin autoload before it works. Watch-outs: versions are lock-stepped to Filament majors, access-control base classes and the widget/theme generators are WIP, and per-panel resource scoping is still plain Filament discovery — the package doesn't abstract it away. Plan to pin, fork if necessary, and own the upgrade path ourselves.
Ask: approve a short spike (a day or two) to validate the install and deploy story and confirm the version matrix against our current Filament release, then a go/no-go on adopting it as the standard structure for the admin.
How can I help you explore Laravel packages today?