relaticle/activity-log

Reusable Filament plugin that renders a unified activity-log timeline for any Eloquent model

Maintainers

Package info

github.com/relaticle/activity-log

pkg:composer/relaticle/activity-log

Statistics

Installs: 37

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0


README

Activity Log

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.

Latest Version Total Downloads PHP 8.4+ Laravel 12+ Filament 5+ Tests

Features

  • Unified timeline — merge spatie logs, related-model timestamps, and custom events into one stream
  • Pluggable sourcesfromActivityLog, fromActivityLogOf, fromRelation, fromCustom, and custom TimelineSource classes
  • 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(),
    ]);
}

View Complete Documentation →

Our Ecosystem

FilaForms

Visual form builder for all your public-facing forms. Learn more →

Custom Fields

Let users add custom fields to any model without code changes. Learn more →

Flowforge

Drag-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.