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.