edwink/filament-user-activity
A Filament plugin that brings user activity tracking to your admin panel, letting you log, view, and filter user actions and events so you can audit changes and monitor who did what, when, and from where.
Architecture fit. This is a Filament panel plugin, so fit is conditional on the application already running the TALL stack (Laravel + Livewire + Alpine + Tailwind) with Filament as its admin surface. It layers two capabilities — an audit-style activity trail and a "currently online" presence indicator — onto the existing panel. It will not adapt cleanly to Blade-only, Inertia/Vue, or API-first applications without custom wiring, and it does not replace a general-purpose audit log if the org needs one for compliance.
Integration feasibility. Mechanically straightforward: Composer install, service-provider auto-discovery, plugin registration in the relevant PanelProvider, publishing migrations/config, and dropping a widget onto a dashboard or adding the companion resource/page. The real work is schema review (does it add columns to users or only new tables?) and confirming the panel middleware stack is the right place for its tracking hook. Estimated engineering effort: 0.5–1 day for a Filament-fluent developer, plus review cycles.
Technical risk.
edwink75). There is essentially no production signal. Treat as an early-adopter dependency, not a settled one.last_activity_at write, expect DB write pressure proportional to panel traffic. Confirm throttling and indexing.Key questions.
spatie/laravel-activitylog (and if so, which major)?Stack fit. Best fit: Laravel 10/11+ with Filament v3+ admin panels, session driver already database- or Redis-backed, and an existing policy around user data access. Poor fit: headless/API-only services, non-Filament admin UIs, or orgs that already standardize on spatie/laravel-activitylog for audit (overlap risk).
Migration path. composer require → publish config and migrations → review migration diff → php artisan migrate in staging → register the plugin in the target PanelProvider → add the widget to the dashboard → configure retention and pruning schedule. Non-destructive if it only adds tables; if it alters users, plan a reversible migration and a backfill strategy.
Compatibility. Pin exact versions of the package, Filament, and Laravel in composer.json. Validate against the org's session driver, queue driver, and timezone configuration — presence and activity timestamps are sensitive to all three. Confirm Filament's panel discovery and widget registration mechanism matches how the plugin expects to be registered.
Sequencing.
PanelProvider, optionally roll back the migration) and a retention job in production.Maintenance. Single-maintainer MIT package with low commit velocity. Budget ~1 dev-day per quarter for dependency hygiene and Filament major-version tracking. If the feature becomes load-bearing (e.g., feeds a compliance report), plan to vendor-fork or wrap it behind an internal interface so it can be swapped.
Support. No commercial support, no downstream dependents to lean on for community answers. The team is effectively an early adopter: expect to file issues and self-patch. Escalation path is "our engineers read the source."
Scaling. The dominant scaling risk is write amplification if activity is recorded per request — verify throttling and index last_activity_at (or equivalent). The presence widget scales with dashboard concurrency; set a conservative poll interval (e.g., 60s+) and prefer cache-backed presence lists over per-tick queries. Activity tables grow linearly with traffic — enforce a retention window and a scheduled prune.
Failure modes.
users schema or with spatie/laravel-activitylog.Ramp-up. Low for a Filament-fluent team — half a day to read the source and wire it up. Allow 1–2 days total for the spike, schema review, and staging validation. Product/legal involvement is required for the privacy review, which is typically the longest-lead item in the rollout.
How can I help you explore Laravel packages today?