Premium plugin · Filament 4.x & 5.x

Boards that keep the order you drop them in.

Turn any status field into a drag-and-drop Kanban board inside your Filament panel.

Kanban::orderField('position')

(1 + 2) / 2 = 1.5

To Do
In Progress
Done

TSK-118

Index the status column

TSK-124

Draft the approval flow

TSK-131

Reorder cards on drop

position: 3.0

TSK-102

Paginate long columns

TSK-097

Lock archived cards

TSK-088

Ship filter tabs

Everything a board needs, configured in one method.

Point it at a model and a status field. Add the rest when you want it.

Reorder on drop

Drag a card into an exact slot, inside a column or on the way to another one. One row is written per drop.

Workflow transitions

Say which statuses a card may move to. The board enforces it.

Search and filters

Search fields and relations. Filter with any Filament form schema, or with tabs.

Actions everywhere

Create, edit, and delete from a card, or add your own to a column header.

Your own card markup

Generate a Blade card component and render whatever the record needs.

Hooks around every move

Run code before, during, and after a move — or a reorder, on its own hooks.

New — card reordering

One column, one write.

A dropped card takes the midpoint between the two cards it landed between, so only the row you moved is written. Columns stay paginated, and the records you never loaded are never touched.

app/Filament/Pages/TasksKanban.php
public function kanban(Kanban $kanban): Kanban
{
    return $kanban
        ->model(Task::class)
        ->statusField('status')
        ->orderField('position')
        ->columns([
            KanbanColumn::make('todo')->label('To Do'),
            KanbanColumn::make('in_progress')->label('In Progress'),
            KanbanColumn::make('done')->label('Done'),
        ]);
}
Read the reordering guide

Put a board in your panel today.