jeffersongoncalves/filament-amplitude
Filament Amplitude integrates Amplitude analytics with your Filament admin panels, making it easy to track events, user behavior, and custom metrics directly from Filament resources with minimal configuration.
This release (3.1.0) adds Plugin::make()->navigationGroup(string|Closure), an opt-in configuration method that places the package's settings page into one of the host panel's own navigation groups. Absent the call, the existing translated group label is retained, so the change is purely additive.
Architecture fit. The package is a Filament panel plugin that registers a settings page. The new API aligns with Filament's native navigationGroup(string|UnitEnum|Closure|null) convention, so it inherits established panel semantics rather than introducing a parallel configuration mechanism. This is a good architectural signal: the package is extending Filament's own primitives rather than inventing an abstraction.
Integration feasibility. Integration is a single fluent call on the plugin instance plus a dependency floor of filament-analytics-core 3.1. No service provider changes, no migrations, no published config edits. Feasibility is high for any team already on the plugin.
Technical risk. Low, but not zero:
filament-analytics-core is at 3.1+. A host application pinned below that will either fail Composer resolution or silently lack the capability, depending on how constraints are declared. This is the primary risk and it is a dependency-management risk, not a code risk.Closure means the group can be resolved dynamically per request. That is powerful but shifts correctness responsibility to the integrator — a closure that returns a label not matching any registered panel group will not error; it will simply produce an orphaned or invisible group. Failure is silent.Key questions.
filament-analytics-core 3.1 floor enforced in composer.json, or only documented?Net: a small, well-scoped, low-risk feature that improves panel cohesion. It does not change the package's architectural posture.
Stack fit. Laravel with Filament v3 panels; the package slots in as a panel plugin. The new method conforms to Filament's existing navigation configuration model, so teams already comfortable with ->navigationGroup() on resources and pages need no new mental model.
Migration path. Effectively a no-op migration. Steps:
filament-analytics-core to ^3.1.^3.1.composer update and confirm no constraint conflicts.->navigationGroup(...) to the plugin registration; omit it to preserve current behavior exactly.There is no deprecation, no renamed method, no config key removal. Existing registrations continue to work unmodified, which makes this a safe patch-window upgrade rather than a scheduled migration.
Compatibility. The hard constraint is the core 3.1 floor. Secondary compatibility considerations are the panel's group naming and any localization in play. Teams on multi-tenant or multi-panel setups should verify the group resolves correctly per panel before enabling.
Sequencing. Upgrade core first, then the plugin, then adopt the new API in a separate change. Keeping the dependency bump and the behavioral opt-in in distinct commits/PRs makes rollback trivial: reverting the navigationGroup() call restores prior behavior without touching versions. Validate in a staging panel that mirrors production group definitions, and only then roll forward. For organizations with change control, this fits comfortably into a routine dependency-maintenance window.
Maintenance. Minimal ongoing burden. The API is one method with two accepted types; there is no new configuration surface, no schema, and no background process. The main recurring cost is tracking the filament-analytics-core version floor across environments.
Support. Expect a small volume of tickets of the form "the settings page moved" or "the settings page disappeared." Both trace to group label mismatches, not to package defects. A short doc note stating that the string must match a registered panel navigation group exactly — and recommending the closure form for dynamic cases — will preempt most of these.
Scaling. Negligible impact. Navigation group resolution is a per-request, in-memory concern; there is no query, I/O, or caching implication at any meaningful scale. Multi-panel and high-tenant-count deployments are unaffected beyond registering the plugin per panel as they already do.
Failure modes.
Ramp-up. Near zero for developers familiar with Filament. One line of documentation and a single example covers it. For teams new to Filament navigation, the closure form warrants a brief explanation of evaluation timing; otherwise the concept maps directly onto patterns they already use for resources and pages.
Recommendation. Adopt during the next routine maintenance cycle. Treat it as a low-risk, opt-in enhancement; the only pre-release action worth requiring is confirming the core 3.1 floor is enforced in composer.json and that the target panel's group labels are documented for integrators.
How can I help you explore Laravel packages today?