relaticle / activity-log
Reusable Filament plugin that renders a unified activity-log timeline for any Eloquent model
Requires
- php: ^8.4
- filament/filament: ^5.0
- illuminate/contracts: ^12.0
- illuminate/database: ^12.0
- illuminate/support: ^12.0
- spatie/laravel-activitylog: ^5.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^10.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- pestphp/pest-plugin-livewire: ^4.0
- dev-main
- 1.x-dev
- v1.0.0-alpha.1
- dev-8-add-composer-test-and-composer-pint-scripts
- dev-update-docs-structure
- dev-add-comunity-docs
- dev-4-test-suite-fails-on-1x-fix-failing-pest-cases-before-enabling-the-ci-workflow
- dev-1-integrate-versioned-docs-site-nuxt-content-github-pages-and-minimize-readme
- dev-update-design
This package is auto-updated.
Last update: 2026-04-21 15:24:10 UTC
README
A unified chronological timeline for any Eloquent model. Aggregates spatie/laravel-activitylog events (own log + related logs), timestamp columns on related models, and any custom source you define — all in one Filament-native feed.
Features
- Unified timeline — merge spatie logs, related-model timestamps, and custom events into one stream
- Pluggable sources —
fromActivityLog,fromActivityLogOf,fromRelation,fromCustom, and customTimelineSourceclasses - Per-event renderers — Blade views, closures, or renderer classes bound per event or type
- Filament-native UX — infolist component, relation manager, and header-action slide-over
- Dedup + filtering — type/event allow/deny lists, date windows, priority-based dedup with override
- Opt-in caching — per-call TTL with explicit invalidation — no model observers
Requirements
- PHP 8.4+
- Laravel 12
- Filament 5
spatie/laravel-activitylog^5
Installation
composer require relaticle/activity-log
Usage
Make the model timeline-capable, then render it on a Filament resource:
use Relaticle\ActivityLog\Concerns\InteractsWithTimeline; use Relaticle\ActivityLog\Contracts\HasTimeline; use Relaticle\ActivityLog\Timeline\TimelineBuilder; use Spatie\Activitylog\Traits\LogsActivity; class Person extends Model implements HasTimeline { use InteractsWithTimeline; use LogsActivity; public function timeline(): TimelineBuilder { return TimelineBuilder::make($this)->fromActivityLog(); } }
use Filament\Schemas\Schema; use Relaticle\ActivityLog\Filament\Infolists\Components\ActivityLog; public static function infolist(Schema $schema): Schema { return $schema->components([ ActivityLog::make('activity')->columnSpanFull(), ]); }
Our Ecosystem
FilaFormsVisual form builder for all your public-facing forms. Learn more → |
Custom FieldsLet users add custom fields to any model without code changes. Learn more → |
FlowforgeDrag-and-drop Kanban for any Laravel model. Learn more → |
Contributing
Contributions are welcome. Please see CONTRIBUTING.md before opening an issue or pull request.
Security
If you discover a security issue, please review our Security Policy.
Changelog
Please see CHANGELOG.md for recent changes.
License
MIT License. See LICENSE.md for details.


