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 Timeline View

Filament Timeline View Laravel Package

devletes/filament-timeline-view

Render Filament Tables as chronological timelines with asTimeline() or asDoubleSidedTimeline() plus a TimelineEntry column, giving date-grouped cards, avatars, timestamps, kebab actions, and load-more.

View on GitHub
Deep Wiki
Context7

Filament Timeline View renders any Filament Table as a chronological feed. Swap ->columns() for TimelineEntry::make() and call ->asTimeline() for a single-column layout or ->asDoubleSidedTimeline() for cards alternating around a centred line. Everything is wired through Filament's standard query, grouping, filtering, action, and pagination APIs.

  • Date-grouped cards with avatars, timestamps, and collapsible day groups
  • Kebab actions dropdown plus a native "View" link via ->recordUrl()
  • Responsive double-sided mode that collapses below 768px
  • Load-more pagination and full filter/search support
  • Zero plugin registration — macros auto-load
Frequently asked questions about Filament Timeline View
How do I install devletes/filament-timeline-view in a Laravel app?
Run composer require devletes/filament-timeline-view. The service provider auto-loads, registers both Table macros, and registers the CSS asset with Filament's asset system, so no plugin registration is needed. After install, publish the asset once with php artisan filament:assets. From there you only touch the table() method of your Livewire table or TableWidget.
Which PHP and Filament versions does this timeline package support?
It requires PHP 8.2 or higher and Filament Tables 5.0 or higher. Filament 3 and Filament 4 are not supported, and no backport path is documented, so teams on older majors cannot adopt it today. Laravel version is not the binding constraint here; the Filament Tables major is.
How do I turn an existing Filament table into a timeline?
Keep your normal table configuration and swap the columns() call for TimelineEntry::make() with its title, content, image, and author setters. Then finish the fluent chain with either ->asTimeline() or ->asDoubleSidedTimeline(). Query, filters, search, grouping, record actions, and pagination keep working because the macros only change rendering.
What is the difference between asTimeline() and asDoubleSidedTimeline()?
asTimeline() renders a single vertical line with cards on the right and dots on the left. asDoubleSidedTimeline() places the line in the centre and alternates cards left and right, collapsing to the single-column layout below 768px. Both use the same TimelineEntry cards and the same collapsible, date-grouped day sections.
Can I use it without installing the full filament/filament package?
Yes. The only dependency is filament/tables, so it works inside standalone TableWidget dashboards that do not ship an entire Filament panel. That narrow dependency surface also reduces upgrade fallout, but you still need a Filament table context to mount the timeline.
How do I set card titles, avatars, timestamps, and content?
TimelineEntry exposes fluent setters for title, content, image, and author, each accepting a data_get() key or a closure. The grouping timestamp column drives both the day buckets and the ->time() label. Eager-load any relation you reference, such as author, so the feed does not N+1. Date grouping and time formatting inherit app and database timezone settings, so normalize before displaying feeds from distributed users. The README does not document whether content() output is escaped, so verify before rendering user-generated HTML.
How does the Load-more button handle pagination?
The macro replaces Filament's paginator with a cumulative button that increments tableRecordsPerPage on each click (5, then 10, then 15, and so on). Because the page grows without bound, the Livewire payload and DOM keep expanding as users click. Only the first integer passed to paginated([...]) is honored, so a multi-option pagination config will silently misconfigure the button.
Do Filament record actions, recordUrl, and policies still work in the timeline?
Yes. The timeline rides Filament's standard table lifecycle, so authorization, policies, action modals, notifications, and record URLs behave exactly as they do on a stock list page. Setting recordUrl() or recordAction() adds a native View link in the card's top-right, separate from the kebab menu. One caveat: multiple action groups or a flat array of actions are collapsed into a single new ActionGroup, discarding group-level configuration.
How do I customize the timeline styling and dark mode?
Styling is driven by documented CSS custom properties, and dark mode plus responsive collapse ship out of the box. Publish the stylesheet with php artisan filament:assets after install and add that command to your deploy pipeline. Re-run it on every package version bump, because a missed publish degrades to an unstyled but functional timeline.
Is this package production-ready, and what are the maintenance risks?
The package is a thin presentation layer, but its ecosystem signals are immature: roughly 23 GitHub stars, zero dependents, a single maintainer, and no visible test suite, CI matrix, or changelog. It pins to Filament Tables v5, a very recent major, so expect breakage in its Blade override as Filament minors land. It is also a global macro on Filament\Tables\Table, worth flagging if you already macro that shared class. Keyboard navigation and screen-reader behavior for the alternating layout are undocumented, so verify accessibility yourself.
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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel