jeffersongoncalves/filament-simple-analytics
Filament Simple Analytics is a Laravel/Filament plugin that adds lightweight analytics views to your admin panel, helping you monitor key site metrics from a simple, configurable dashboard.
What changed (3.1.0): A single additive capability — Plugin::make()->navigationGroup(string|Closure) on the settings-page plugin, allowing the page to be registered into one of the host panel's own navigation groups instead of the package's shipped translated group label. The default behavior is preserved ("without it the translated group is kept"), and the feature carries a hard dependency floor of filament-analytics-core 3.1.
Architecture fit: This is a Filament panel plugin whose only job is to register a settings page. The change is well-scoped to that responsibility: it exposes a first-class configuration seam rather than forcing teams to subclass the plugin or post-process the panel's navigation at boot. Accepting string|Closure is the idiomatic Filament pattern for navigation grouping, and it means the group can be resolved lazily per panel/tenant rather than frozen at registration time. That is the right shape for a multi-panel (admin vs. tenant) install, which is exactly where hardcoded group labels break down.
Integration feasibility: Low effort. It is one fluent call in a panel provider, applied where the plugin is already registered. No service provider changes, no migrations, no config publishing, no asset rebuild. The only prerequisite is satisfying the filament-analytics-core 3.1 floor, which is the real work item — not the API call.
Technical risk: Low, but not zero. Three things a TPM should have on the board:
filament-analytics-core >= 3.1. Teams pinned below that (deliberately, e.g. mid-freeze) will get a method that either doesn't exist or silently no-ops depending on how the plugin resolves. The upgrade path for core is the actual change ticket; navigationGroup() is a one-liner that rides along.Key questions to resolve before sign-off:
navigationGroup() available on all plugin entry points, or only the settings-page plugin?$this/argument signature, and is it panel- or tenant-aware?core 3.1 that we also need to be on?navigationSort hacks) teams may have adopted?Stack fit: Fits an existing Laravel + Filament panel with filament-analytics-core already installed. No new runtime, no new datastore, no queue or scheduler footprint. Nothing here changes the deployment topology.
Migration path: Treat core 3.1 and this plugin 3.1.0 as a single coupled upgrade — bump both in one PR, resolve the constraint, run the panel's existing smoke checks, then apply navigationGroup() in panel providers as a second, easily revertible commit. Keeping the two commits separate means the version bump can be validated independently of the navigation change, which matters if the bump surfaces unrelated core regressions.
Compatibility: The change is additive with a stated default-preserving fallback, so it should be a non-breaking minor for anyone already on core 3.1. The compatibility risk is concentrated entirely on the dependency floor, not on the API. Verify the constraint resolver isn't going to pull core 3.1 transitively into a project that pinned it lower for a reason.
Sequencing:
filament-analytics-core to >= 3.1 and the plugin to 3.1.0 in a staging branch; confirm install resolves cleanly.navigationGroup() per panel; confirm closure form works for any tenant-scoped panel.Maintenance: Near-zero steady-state cost. It's a configuration call, not an integration. The maintenance surface is the version constraint on core — this release is a reminder that the plugin and core move in lockstep, so release notes for one should be read as release notes for the pair.
Support: Expect a small, low-severity ticket tail of two kinds: "the method doesn't exist" (someone upgraded the plugin but not core), and "our settings page moved / is in the wrong place / is out of order" (someone adopted the new group and didn't check sort order or locales). Both are diagnosable from the panel provider file alone. Publish a one-line internal note — "requires core 3.1; omit the call to keep prior behavior" — and you've pre-empted most of it.
Scaling: Neutral. Navigation grouping is computed at panel registration/render; there is no data-volume dimension. The only scaling consideration is multi-panel and multi-tenant fan-out: if you operate many panels, prefer the closure form so group resolution stays context-aware rather than duplicating provider code per panel.
Failure modes:
Ramp-up: Trivial for any developer who has registered a Filament plugin — one fluent call, documented in one sentence. The ramp-up cost that actually matters is knowing which panels should adopt the custom group and which should not; that's a product/IA decision, not a technical one, and it should be made once by whoever owns panel navigation rather than per-developer.
TPM recommendation: Adopt, but do not treat it as urgent. It's a genuinely useful seam for multi-panel and multi-tenant installs and a no-op for everyone else. Bundle it with the core 3.1 upgrade rather than scheduling it separately, keep the default group unless there's a concrete IA reason to change it, and don't let the one-line API obscure the fact that the dependency bump is the actual change under management.
How can I help you explore Laravel packages today?