muhammadsadeeq/laravel-activitylog-ui
Beautiful modern UI for Spatie Laravel Activity Log. Browse activities in table, timeline, and analytics views; filter by date, event, user, or subject; save views; export CSV, Excel, PDF, or JSON; and control access via gates and middleware. Built with Tailwind and Alpine, no build step.
authorization.enabled to true by default (prior versions shipped the full audit log publicly) and actually enforces allowed_users / allowed_roles. Any install that published config before v3 keeps its own value — a decision the PM must confirm rather than assume, since "public audit log" is a reportable exposure.features.analytics, features.exports, features.saved_views let you ship a lean viewer first and switch on dashboards/exports later without a migration — useful for phased rollouts or tiering by plan.activity_log (cited: 204,963 activities, first page 350ms → 21ms). Indexing locks an established table, so this is a scheduled-maintenance decision, not a silent upgrade. Export max_records (10,000) and queue threshold (1,000) are also policy knobs — they define how much data a single user can pull and whether that load hits the request path.Adopt when all of the following hold:
laravel-activitylog ≥ 5.0 is installed, logging, and the activity_log table carries the v5 schema (attribute_changes column).Look elsewhere or wait when:
maatwebsite/excel and barryvdh/laravel-dompdf; if those are banned by your dependency policy, plan on CSV/JSON only (the package degrades gracefully).For executives (one paragraph): We already pay for the audit trail — every change to our data is recorded — but nobody can read it without a developer writing SQL. This package turns that existing data into a browsable, filterable interface with dashboards and exports, so support and compliance can answer "who changed what, when" themselves. It's MIT-licensed, requires no build step or new infrastructure, and is roughly a day of integration rather than a sprint of internal development. The main thing it needs from us is a decision on who is allowed to see it.
For engineering (three lines): Add muhammadsadeeq/laravel-activitylog-ui on top of the Spatie v5 log you already run. Requirements are PHP 8.4 / Laravel 12–13; publish config and views, register the viewActivityLogUi gate, and confirm authorization.enabled is true (v3 changed the default from public — verify any pre-existing published config). Schedule the opt-in index migration as a maintenance window; it materially cuts page load on large logs.
For security and compliance: v3.0.0 closes a default that served the entire audit log to unauthenticated visitors, and it makes allowed_users / allowed_roles actually enforced. Access is gate + middleware + optional email/role whitelist, with a documented precedence order. Exports are scoped to the creating user (shared URLs no longer work across users), out-of-range parameters now return 422 instead of silently widening the result set, and invalid filters can no longer return more of the log than requested. Third-party assets at page load were cut from ~630KB to a ~6KB first-party stylesheet.
Known constraints to state up front, not discover later: hard version floor (PHP 8.4, Laravel 12+), small single-maintainer project with zero dependents and a fast-moving major version, no added immutability or retention guarantees, and an opt-in index migration that locks the activity_log table while it runs. None of these are blockers for an internal read-only viewer; all of them are worth naming before the first commit.
How can I help you explore Laravel packages today?