All pages

getting started

What's new in V2

Filament 4 and 5 support, embeddable boards, card reordering, transition modals, and more.

V2 targets Filament 4 and 5. If you are still on Filament 3, stay on the 1.x line — composer require asmit/advanced-kanban:^1.6.

Platform

1.x2.x
Filament3.x4.x or 5.x
PHP^8.1^8.1

Embed anywhere

Kanban is now a Filament ViewComponent, so a board is not tied to a single page view.

  • Render with {{ $this->getKanban() }} in any Livewire view
  • Run multiple named boards on one page with ->name('tasks')
  • Override card and column components per board with ->cardComponent() and ->columnHeaderComponent()
  • Use inside relation managers via InteractWithRelatedKanban
  • Scope records with Filament tabs on the host page
php
use Asmit\AdvancedKanban\Concerns\InteractsWithKanban;
use Asmit\AdvancedKanban\Kanban;

class MyDashboard extends Page
{
    use InteractsWithKanban;

    public function kanban(Kanban $kanban): Kanban
    {
        return $kanban
            ->name('tasks')
            ->model(Task::class)
            ->statusField('status')
            ->columns([/* ... */]);
    }
}
blade
<x-filament-panels::page>
    {{ $this->getKanban() }}
</x-filament-panels::page>

KanbanPage still works unchanged for the standard full-page board.

Card reordering

Drop cards into an exact slot — within a column or across columns — with a single write per drop. Opt in with orderField() against a nullable decimal column.

See Card reordering.

Transition modals

Collect data in a Filament modal before a card may enter a column. The move only commits once the form validates.

See Transition modals.

Record infolist cards

Draw the card body from Filament infolist entries instead of the default title and description. Add actions directly in the card body.

See Record infolist.

New actions

ActionWhat it does
Move to topSends a card to the first slot in its column
ReplicateDuplicates a card in the same column
CreateKanban-aware create action for column headers

See Actions for the full list.

Deferred loading

Boards with lots of data can defer the first records query until after the page paints:

php
return $kanban
    ->model(Task::class)
    ->statusField('status')
    ->deferLoading();

The board chrome renders immediately; cards load via wire:init. See core concepts.

Other improvements

  • UUID and string primary keys — record IDs are no longer assumed to be integers
  • Filter indicators — active filters show as removable chips, including enum-backed values
  • Drag-and-drop hydration fix — column state updates correctly on the first move
  • Render hooks — inject content above the search bar or at the page footer
  • Horizontal scroll minimap — navigate wide boards more easily
  • Translations — publish and override language files with advanced-kanban-translations

Upgrading from 1.x

For most apps there are almost zero breaking changes — bump the package, rebuild assets, and you are done. See the full Upgrade guide.