- What is Filament Modules used for?
- Filament Modules is a wrapper around nwidart/laravel-modules that turns each Laravel module into a Filament plugin. You register ModulesPlugin once in your panel, and each module can expose its own resources, pages, widgets, and components without individual plugin registration. It is intended for teams organizing a Filament admin panel into reusable, autonomous modules.
- How do I install Filament Modules in Laravel?
- Install the package with Composer, add the merge-plugin autoload block to composer.json so each module's composer.json is discovered, and run modules:install or vendor:publish --tag=modules-config. Then register ModulesPlugin::make() in your main panel provider and use module:filament:install to prepare modules for Filament. Keep the merged autoload graph consistent across environments and validate it in CI.
- Which Laravel and Filament versions does this package support?
- Version 5.x supports Laravel 11, 12, and 13, Filament 4.x and 5.x, and nwidart/laravel-modules 11+, with PHP 8.3+. If you are on Filament 3, use the 4.x branch and documentation; for Laravel 10, use the 3.x line. The package documents this version matrix explicitly, so pin versions that match your stack.
- How does ModulesPlugin auto-discover Filament modules?
- Register ModulesPlugin::make() in your Filament panel provider. It discovers modules managed by laravel-modules and registers each one as a fully functional Filament plugin with its own resources, pages, widgets, and components. This removes the need to register every module plugin individually in the panel.
- Can I generate Filament resources, pages, and widgets inside a module?
- Yes. The package provides command-driven scaffolding such as module:filament:install, module:filament:resource, module:filament:page, and module:filament:widget, along with commands for clusters and additional plugins. The commands use interactive prompts and generate the Filament code inside the selected module.
- What are Filament clusters in filament-modules and should I use one per module?
- Filament Modules can create a Filament cluster inside a module and lets you organize your admin panel into one cluster per module. That is an organizational pattern rather than a hard requirement. Use it when separating each module's admin surface makes navigation and ownership clearer.
- Can I share or reuse Filament modules across multiple Laravel projects?
- Yes. The package is designed to make Filament code live in autonomous modules that can be shared and reused across multiple Laravel projects. Each module behaves like a Filament plugin with its own resources, pages, widgets, and components. Reuse still depends on keeping module composer files and the merged autoload setup consistent.
- What are the plugins, panels, or both config modes in Filament Modules?
- The package is discussed with three config modes: plugins, panels, or both. Confirm the exact behavior in the version you install, then choose the mode that matches your target operating model. The choice should not conflict with your existing panel and provider conventions.
- Is filament-modules production-ready and what are the maintenance risks?
- It is a thin wrapper over mature packages, but it has a small ecosystem, a single maintainer, and limited documented dependents, so treat it as a bus-factor-one dependency. Pin versions and schedule synchronized upgrades across Filament and nwidart/laravel-modules. Read or fork the source if governance requires ownership of core admin code, and avoid depending on WIP widgets, theme generation, or access-control paths in the first phase.
- When should I avoid Filament Modules and use plain Filament instead?
- Avoid it for greenfield monoliths, teams still on Filament 3, or organizations without module discipline already in place. If modularizing the admin panel is only a nice-to-have, the wrapper's value is thin compared with plain Filament. nwidart/laravel-modules is the gate: if your team is not comfortable with it, this package adds onboarding cost rather than reducing it.