jeffersongoncalves/filament-umami
A Filament plugin that brings Umami analytics into your Laravel admin panel, letting you view website traffic, page views, and key metrics without leaving your dashboard. Simple setup and a clean, native Filament integration.
Architecture fit
Release 3.5.0 is an additive, opt-in configuration surface on the existing Plugin registration object (Plugin::make()->navigationGroup(...)). It does not change the package's runtime architecture: the plugin still registers a settings page into a Filament panel, and navigation placement remains a presentation concern resolved at panel boot. The string|Closure union is idiomatic for Filament (static label or dynamically resolved group, e.g. tenant- or panel-aware), and the documented default of retaining the translated group means the change is backward compatible by construction. Fit with a standard Laravel/Filament stack is high, with the caveat that this is a UI-orchestration concern rather than a domain capability — value is concentrated in teams running multi-panel or custom-navigation admin surfaces.
Integration feasibility
Low effort to adopt: one chained call in the panel provider (or wherever Plugin::make() is registered), plus a dependency floor of filament-analytics-core >= 3.1. The realistic integration cost is the transitive constraint bump, not the API call. Teams pinned below core 3.1 must upgrade that package first, which is where any real friction will appear (Composer resolution, lockfile churn, and re-testing the analytics panel itself). No migrations, no config publishing, no asset rebuild implied by the notes.
Technical risk Overall risk is low, but there are several unverified edges that a TPM should not assume away from three sentences of release notes:
navigationGroup, producing a silently orphaned or oddly ordered item rather than a hard failure. This is a configuration-correctness risk, not a crash risk.Key questions
Closure receive (panel, tenant, user, plugin instance), and is it evaluated once per request or per render?filament-analytics-core 3.1 a hard Composer constraint or a runtime feature gate? What does the plugin do when run against 3.0?navigationGroup() apply only to the settings page, or to every page the plugin registers?Stack fit
Assumes a Laravel application on Filament with filament-analytics-core already installed. The change lives entirely at the panel-provider layer, so it composes cleanly with existing ->navigationGroup(), ->navigationSort(), and ->navigationLabel() patterns developers already use on Filament resources and pages. Teams with a single default panel and default navigation gain nothing and should skip it.
Migration path
filament-analytics-core version; upgrade to >=3.1 if below, running the analytics panel smoke test afterward.->navigationGroup('Your Group') or a closure to the plugin registration and confirm the item lands in the intended group with expected ordering.Compatibility Additive and opt-in; no removed or renamed API is described, so this is a non-breaking minor under semver. Principal compatibility exposure is the core 3.1 floor rather than the new method itself. Multi-panel and multi-tenant installations are the configurations most likely to surface ordering or resolution differences and should be tested explicitly.
Sequencing
Upgrade core first, then this package, then adopt the new API — do not combine the dependency bump with the first use of navigationGroup() in a single change, or a navigation regression will be ambiguous to attribute. If the plugin is used across several panels, roll out to the least critical panel first and compare navigation output before and after.
Maintenance Near-zero ongoing cost for default-path users. Opt-in users take on ownership of the group label (including translations) and of any closure logic, which converts a package-maintained string into application-maintained configuration — a small but permanent maintenance transfer. Watch upstream for whether the translated default is later deprecated.
Support Support burden is likely to concentrate in two tickets: "our settings link vanished / moved to the wrong section" (group name mismatch or ordering) and "the label isn't translated anymore" (opt-in override). Both are diagnosable from the panel provider alone, so first-line support can resolve without package-level debugging. Closure-based configurations raise the diagnostic cost because behavior may vary by tenant or panel.
Scaling No scaling implications: this is navigation metadata resolved at render, with no queries, jobs, or storage introduced by the release. Cost scales with panel/tenant count only insofar as a closure is evaluated per navigation render — worth confirming if the closure is non-trivial.
Failure modes
Ramp-up Trivial for anyone already comfortable with Filament plugin registration — effectively a one-line change and under an hour including verification. Budget a half-day if the core 3.1 upgrade is required, and add a short internal note documenting the chosen group name(s) and any closure contract once confirmed upstream, since the release notes leave that contract implicit.
How can I help you explore Laravel packages today?