Search by

alfasix / alfakit-kanban

faizanakbar10

Kanban boards for any Eloquent model in AlfaKit panels: drag and drop with keyboard and touch, WIP limits, transitions, swimlanes and authorised, tenant-scoped moves.

Package info

github.com/alfasixbh/alfakit-kanban

Homepage

Issues

pkg:composer/alfasix/alfakit-kanban

Statistics

Installs: 54

Dependents: 0

Suggesters: 0

Stars: 0

v0.2.5 2026-10-27 09:31 UTC

This package is auto-updated.

Last update: 2026-10-29 13:41:42 UTC


README

by Alfa Six

This is a read-only split of the AlfaKit monorepo. Please open issues and pull requests there.

Kanban boards for any Eloquent model in AlfaKit panels: a resource board page and a dashboard widget, with columns from an enum, a relationship or a closure, rich cards, drag and drop with mouse, touch and keyboard, WIP limits, transitions, swimlanes, search and filters. Every move is one authorised, validated and tenant-scoped request.

Installation

composer require alfasix/alfakit-kanban

The board ships with @alfakit/react, @alfakit/vue and @alfakit/svelte; nothing to install on the frontend.

Register

use AlfaSix\AlfakitKanban\KanbanPlugin;

$panel->plugin(KanbanPlugin::make());

Usage

use AlfaSix\AlfakitKanban\Pages\KanbanPage;

class TaskBoard extends KanbanPage
{
    protected static string $resource = TaskResource::class;

    protected static ?string $statusEnum = TaskStatus::class;

    protected static ?string $orderAttribute = 'sort';

    public function getFormSchema(): array
    {
        return [TextInput::make('title')->required()];
    }
}

// TaskResource::getPages()
'board' => TaskBoard::route('/board'),

Cards move by dragging or with the keyboard (Space to pick up, arrows to move, Space to drop, Escape to cancel). The server checks the update policy, the target column, getTransitions(), strict WIP limits and the tenant on every move, and dispatches CardMoved afterwards.

See the documentation for every option.