muhammadsadeeq/laravel-activitylog-ui
| Install | |
|---|---|
composer require muhammadsadeeq/laravel-activitylog-ui |
|
| Latest Version: | v2.0.1 |
| PHP: | ^8.4 |
| License: | MIT |
| Last Updated: | Apr 3, 2026 |
| Links: | GitHub · Packagist |
Laravel Activity Log UI
Beautiful, modern UI for Spatie's Activity Log
Important: This package assumes you already have Spatie's Activity Log installed and configured in your Laravel application. It does not replace the logging package—only provides a powerful UI for viewing and analyzing the stored activities.

📖 Documentation
📚 Complete Documentation - Comprehensive guide with advanced features, customization options, and troubleshooting.
⬆️ Upgrading from v1.x
v2.0 is a breaking release targeting Spatie laravel-activitylog v5. See UPGRADING.md for the full migration guide.
✨ Features
- Table, Timeline & Analytics dashboards
- Powerful filter panel (date presets, events, users, subjects, search)
- Saved views, per-page & sorting preferences
- Export to CSV / Excel / PDF / JSON
* Optional Excel & PDF exports require additional packages (see below) - Real-time count & pagination powered by Laravel cache
- Authorization gate, middleware & granular access lists
- Tailwind CSS & Alpine.js – no build step required
🗒️ Requirements
- PHP ≥ 8.4
- Laravel 12 | 13
- spatie/laravel-activitylog ≥ 5.0 (already logging your activities)
- Database table
activity_logwith Spatie v5’s schema (includesattribute_changescolumn)
Optional (for export)
| Feature | Package | Version |
|---|---|---|
| Excel (XLSX) | maatwebsite/excel |
^3.1 |
barryvdh/laravel-dompdf |
^2.0 |
Add them when you need those formats:
composer require maatwebsite/excel barryvdh/laravel-dompdf
🚀 Installation
- Install the package
composer require muhammadsadeeq/laravel-activitylog-ui - (Optional) Publish resources
# Config file (config/activitylog-ui.php) php artisan vendor:publish --provider="MuhammadSadeeq\ActivitylogUi\ActivitylogUiServiceProvider" --tag="activitylog-ui-config" # Blade views (if you want to customise) php artisan vendor:publish --provider="MuhammadSadeeq\ActivitylogUi\ActivitylogUiServiceProvider" --tag="activitylog-ui-views" # Public assets (logo, js, css) php artisan vendor:publish --provider="MuhammadSadeeq\ActivitylogUi\ActivitylogUiServiceProvider" --tag="activitylog-ui-assets" - Run migrations
Ensure you have already run Spatie’s migrations so theactivity_logtable exists:php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-migrations" php artisan migrate - Visit the UI
/activitylog-ui # default route prefix
⚙️ Configuration Overview
A full configuration file is published to config/activitylog-ui.php. Below is a quick reference:
return [
'route' => [
'prefix' => 'activitylog-ui', // URL prefix
'middleware' => null, // Auto-detected or custom array
],
'authorization' => [
'enabled' => false, // true => uses Gate / auth middleware
'gate' => 'viewActivityLogUi',
],
'access' => [
'allowed_users' => [], // user email whitelist
'allowed_roles' => [], // role names (Spatie Permission, etc.)
],
'features' => [
'analytics' => true,
'exports' => true,
'saved_views' => true,
],
'exports' => [
'enabled_formats' => ['csv', 'xlsx', 'pdf', 'json'],
'max_records' => 10000,
'queue' => [
'enabled' => false,
'threshold' => 1000,
'queue_name'=> 'exports',
],
],
];
Refer to the inline comments in the file for every available option.
🔐 Authorization & Access Control
- Gate:
viewActivityLogUiis auto-registered (seeActivitylogUiServiceProvider). You may define it in your own code or rely on the package’s default email/role checks. - Toggle authentication: Set
authorization.enabledtotrueto require login + gate. - Granular lists:
access.allowed_usersandaccess.allowed_roleslet you open the UI to a subset of users—regardless of the gate.
📤 Exports
- CSV & JSON work out-of-the-box.
- Excel (XLSX) requires
maatwebsite/excel– otherwise we gracefully fall back to CSV. - PDF requires
barryvdh/laravel-dompdf– otherwise we fall back to JSON. - Large exports can be queued; enable
exports.queue.enabled.
📈 Analytics Dashboard
Enable/disable with features.analytics. Caches stats for analytics.cache_duration seconds (default 1 h).
🤝 Contributing
PRs and issues are welcome!
📝 License
The MIT License (MIT). See LICENSE for details.
Related Packages
Universal change history and audit log for Laravel. Tracks who changed what and...
Enterprise Laravel Livewire CRUD generator with advanced analytics, calendar man...
A powerful, feature-rich activity logging solution for FilamentPHP v4 & v5 with...
A filesystem driver for the owen-it/laravel-auditing package. Allows storage of...