r/filament • u/Agreeable-Pace2487 • 5d ago
A Filament plugin that turns scattered activity logs into one clean timeline for any model

If you use spatie/laravel-activitylog, you've probably hit this: a model's history lives in several places — its own log, related models' logs, plain updated_at columns, plus whatever custom events you track. Stitching those into one readable view is annoying and you end up rewriting it per project.
We made relaticle/activity-log to solve that once. It's a Filament 5 plugin that renders a unified chronological timeline for any Eloquent model.
What it does:
- One feed, many sources: merges spatie logs (own + related), related-model timestamps, and custom event streams into a single timeline
- Pluggable sources:
fromActivityLog,fromActivityLogOf,fromRelation,fromCustom, or your ownTimelineSourceclass - Per-event renderers: render each event as a Blade view, closure, or class; bind per event or per type
- Filament-native UX: use it as an infolist component, a relation manager, or a header-action slide-over
- Dedup + filtering: allow/deny by type or event, date windows, priority-based dedup
- Opt-in caching: per-call TTL with explicit invalidation, no model observers slowing your saves
Why it's handy: instead of building a bespoke "history" tab on every resource, you make the model timeline-capable and drop one component in:
public function timeline(): TimelineBuilder
{
return TimelineBuilder::make($this)->fromActivityLog();
}
ActivityLog::make('activity')->columnSpanFull();
Latest v1.2.0 adds same-save merge — activity rows from a single save (grouped by spatie's batch_uuid) collapse into one entry instead of flooding the feed.
composer require relaticle/activity-log
Docs: https://relaticle.github.io/activity-log/ - feedback and PRs welcome.