getting started
Quick start
A working board in two steps — create a page, describe the columns.
1. Create a Kanban page
php artisan make:filament-page TasksKanban
2. Configure the board
The board assumes your records have a title and a description. Point it at other fields with
titleField() and descriptionField().
Your page must extend KanbanPage and pass a model and a status field. Don't set a $view
property — KanbanPage brings its own view.
<?php
namespace App\Filament\Pages;
use App\Models\Task;
use Asmit\AdvancedKanban\Columns\KanbanColumn;
use Asmit\AdvancedKanban\Kanban;
use Asmit\AdvancedKanban\Pages\KanbanPage;
class TasksKanban extends KanbanPage // ← Must extend KanbanPage
{
// Other properties like $navigationIcon, $navigationGroup, etc.
public function kanban(Kanban $kanban): Kanban
{
return $kanban
->model(Task::class) // ← Pass your model
->statusField('status') // ← Pass the status field
->columns([
KanbanColumn::make('todo') // ← Pass required column
->label('To Do'),
KanbanColumn::make('in_progress')
->label('In Progress'),
KanbanColumn::make('completed')
->label('Completed'),
])
->searchableFields(['title', 'description'])
->recordsPerColumn(10);
}
}
3. That's it
The page appears in your Filament navigation and shows your tasks grouped by status.
Checklist:
- Extend
KanbanPage - Pass
->model(YourModel::class) - Pass
->statusField('your_status_field') - Leave
$viewunset
Add card positions
Cards keep whatever order your query returns until you give the board a sortable column. Add a
decimal column and pass it to orderField() to drag cards into an exact slot:
->orderField('position')
See card reordering for the migration and the hooks.