Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Activitylog Ui Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on internal audit tooling. Spatie's package already stores the audit trail; this package supplies the read layer (table, timeline, analytics, filters, exports) that would otherwise be a multi-sprint internal build. The decision reduces to "adopt and configure" versus "build an admin screen," and the build option is rarely justified unless your log viewer is customer-facing.
  • Whether audit-log visibility ships in the next release or a later one. Because the package assumes Spatie is already installed, the incremental cost is a composer require, a config publish, and an authorization gate — small enough to slot into an existing cycle rather than needing its own roadmap line.
  • Compliance and support readiness. Exports to CSV/Excel/PDF/JSON, date-range filters, and per-causer/subject drill-down let support and compliance answer "who changed this record, when, and what exactly changed" without engineering involvement. This is a concrete answer to SOC 2 / GDPR access-review asks.
  • Security posture decisions that need explicit sign-off. v3.0.0 flips 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.
  • Feature scoping via config flags. 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.
  • Data-retention and performance budget decisions. v3 offers an opt-in migration adding indexes on 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.

When to Consider This Package

Adopt when all of the following hold:

  • Spatie laravel-activitylog ≥ 5.0 is installed, logging, and the activity_log table carries the v5 schema (attribute_changes column).
  • You are on PHP ≥ 8.4 and Laravel 12 or 13 — this is a hard floor and matches Spatie v5 only.
  • Someone needs to read the log: support, compliance, security, or internal ops. If nobody queries the log, this adds surface area for no value.
  • Your log volume is meaningful enough that raw SQL inspection is painful — the analytics dashboard, saved views, and filtering are the actual value; a table of 200 rows doesn't need them.
  • You can accept a Tailwind/Alpine UI with no build step, and don't need it to match your own design system pixel-for-pixel (Blade views are publishable if you do).

Look elsewhere or wait when:

  • You're on Laravel 10/11 or PHP 8.3 — v3 is out, and pinning to 2.x means a stale, less secure line (v3 is explicitly the security release).
  • You need a customer-facing activity feed, not an admin tool. This is an operator UI with a gate; embedding it in a product surface is the wrong shape.
  • You require audit-log immutability, tamper-evidence, or retention enforcement — this package reads Spatie's table, it doesn't add write guarantees, WORM storage, or retention policy.
  • You need SIEM forwarding or centralized log correlation — ship logs to your observability stack instead.
  • Maturity risk to weigh explicitly: the package shows 196 stars and 0 dependents, one maintainer, and a breaking major (2.0 → 3.0) that changed both authorization defaults and several public APIs within roughly a year. It is MIT and forkable, and the surface is a read-only UI, so the blast radius is contained — but budget for the possibility of maintaining a fork, and read UPGRADING.md before every major.
  • Optional XLSX/PDF exports pull in maatwebsite/excel and barryvdh/laravel-dompdf; if those are banned by your dependency policy, plan on CSV/JSON only (the package degrades gracefully).

How to Pitch It (Stakeholders)

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package