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
Filament Activity Timeline

Filament Activity Timeline Laravel Package

bokshorn-it/filament-activity-timeline

A Filament plugin that turns spatie/laravel-activitylog into readable timelines: enum, date, boolean, and relationship diffs rendered through the subject model's own casts, plus a filterable activity resource, custom events, and German translations.

View on GitHub
Deep Wiki
Context7

Make spatie/laravel-activitylog readable in Filament: a record timeline, a filterable activity resource, and diffs that resolve enums, dates and foreign keys to human labels.

Frequently asked questions about Filament Activity Timeline
How do I install filament-activity-timeline in a Laravel app?
Install it with composer require bokshorn-it/filament-activity-timeline, then register the plugin in your Filament panel provider. You need Filament and spatie/laravel-activitylog already installed, and the timeline gets attached to a resource as a relation manager or timeline widget. The Activity resource also appears in navigation, and the package adds no schema of its own.
Which Filament, Laravel and spatie/laravel-activitylog versions does it support?
Release 1.x declares Filament 5.x with Laravel 12.x and 13.x, so check the compatibility table in the repo against your own stack before installing. The plugin sits between three independently versioned ecosystems, and activitylog's v4 to v5 schema change (attribute_changes instead of properties) alters what the diff resolver reads. Pin your constraints and verify the exact combination in a spike rather than assuming a nearby version works.
Does the package log activity for me, or do my models need the LogsActivity trait?
It is a presentation layer only: it renders what spatie/laravel-activitylog already captured, so your models must use the LogsActivity trait and be logging the events you care about. It cannot backfill history that was never recorded. Teams that enabled logging broadly without tuning logOnly or logExcept usually get noisy timelines instead of insight, so decide what gets logged first.
How does it make raw activity values readable, like enums, dates and foreign keys?
Every stored raw value is replayed through the subject model's own casts and relationships at render time, so a diff reads the way the record does on screen. Enum casts become labels, date casts are formatted (for example 14.08.2026), booleans become words, and foreign keys, polymorphic ones included, resolve to the related record's name. Models can also render their own columns for money, quantities and custom casts that no schema explains.
How do I show the timeline on a record, and can I log my own custom events?
Attach the timeline as a relation manager or widget on the resource that should show history, and you can optionally pull related records into the same stream. Beyond create, update and delete you can register your own events, each with its own icon and colour. A separate filterable Activity resource gives a panel-wide view filtered by event, record type, causer and date range.
Does the Activity resource respect policies and multi-tenancy scoping?
Activity logs reveal who changed what and when, so gate the resource before exposing it to a whole panel, and since the README does not document a dedicated policy hook, confirm the behaviour in a spike. For multi-tenant panels the open question is whether the resource scopes by tenant or exposes subjects across the entire panel, because the documented filters cover event, record type, causer and date range rather than ownership. Test with two tenants on staging before shipping.
Will the timeline cause N+1 queries on large activity logs?
Each entry can resolve a causer, a subject and multiple foreign-key labels, which is an N+1 generator unless the package eager-loads or memoizes the diffs. Profile query counts against a realistic historical volume rather than a small fixture set, since that is the first thing worth measuring. If it is hot, page the entries harder, trim which related records the timeline pulls in, and check whether repeated lookups are cached.
What happens for entries whose subject was deleted or whose attributes no longer exist?
The resolver inherits every edge case your models have: soft-deleted subjects resolve to null labels, renamed or removed attributes may not match the current model shape, and deleted enum cases or custom and encrypted casts can render unexpectedly. Old rows are exactly where raw stored values stop matching the current schema. Test against a real corpus of historical entries instead of only fresh fixtures.
Is it safe to adopt with so few stars and no dependents?
Adoption is small, around seven stars and no dependents, so there is no crowd to surface a compatibility break before you hit one. The offsetting strength is genuinely low lock-in: the package owns no schema, reads the existing activity_log table, and can be removed by deleting a panel plugin registration. Pin the version, check the CI matrix covers your Filament and activitylog combination, and spike upgrades before merging them.
Does it ship German translations and is the date format locale-aware?
The package ships English and German, and every label is translatable, so additional locales can be added through the usual Laravel lang files. Dates render in the dd.mm.yyyy style shown in the README, but verify that formatting follows your app locale and config if your users expect a different convention.
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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings