zaynasheff / boards
Kanban boards plugin for Filament
Requires
- php: ^8.1
- filament/filament: ^3.0
- illuminate/support: ^10.0|^11.0
This package is auto-updated.
Last update: 2026-02-23 06:48:06 UTC
README
Boards is a plugin for Filament that adds kanban board style functionality to your admin panel.
Features
Boards provides a flexible and modern kanban experience inside Filament.
-
Unlimited boards
Create and manage as many boards as you need for different workflows, teams, or processes. -
Drag & drop columns and cards
Easily reorder columns and move cards between them using an intuitive drag & drop interface. -
Multitenancy support
Built-in multitenancy allows boards to be scoped per team or organization. -
Multi-language support
Fully localized using Laravel’s translation system, with support for multiple languages out of the box. -
Fully customizable UI
Customize the appearance of boards, columns, and cards to match your application’s design.
Installation
You can install the package via composer:
composer require zaynasheff/boards
Database Migrations
Boards requires database migrations to function properly.
Publish and run the migrations during installation:
php artisan vendor:publish --tag="boards-migrations"
php artisan migrate
Register the plugin
Register the plugin in your Filament panel provider:
app/Providers/Filament/AdminPanelProvider.php
use Zaynasheff\Boards\BoardsPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ BoardsPlugin::make(), ]); }
Plugin Configuration
You can customize how the Boards plugin appears in the Filament navigation by chaining configuration methods when registering the plugin.
use Zaynasheff\Boards\BoardsPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ BoardsPlugin::make() ->title('CRM'), ->navigationLabel('CRM') ->navigationIcon('heroicon-o-users') ->navigationGroup('Marketing') ->navigationSort(-1) ]); }
| Method | Description |
|---|---|
navigationLabel(string $label) |
Sets the navigation label |
navigationIcon(string $icon) |
Sets the navigation icon (Heroicons) |
navigationGroup(string $group) |
Assigns the plugin to a navigation group |
navigationSort(int $sort) |
Controls navigation order |
title(string $title) |
Sets the page title |
Localization (Translations)
Boards supports multiple languages and uses Laravel’s built-in localization system.
All user-facing strings are translatable and can be customized for your application.
Publishing Translation Files
To publish the translation files, run:
php artisan vendor:publish --tag="boards-translations"
Multitenancy Support
Boards supports optional multitenancy, allowing you to scope boards and related data to the currently active tenant
(for example: Company, Team, etc.).
This is useful if your application serves multiple organizations or teams within a single Filament panel.
Enabling Multitenancy
To enable multitenancy support, publish the configuration file if you haven’t already:
php artisan vendor:publish --tag="boards-config"
Then open the config file:
config/boards.php
Set multitenancy to true:
return [ 'multitenancy' => true, // ... ];
Tenant Configuration
When multitenancy is enabled, you must configure how Boards resolves the current tenant.
Uncomment and configure the tenant array:
return [ 'multitenancy' => true, 'tenant' => [ 'model' => \App\Models\Company::class, 'table' => 'companies', 'foreign_key' => 'company_id', ], ];
| Key | Description |
|---|---|
model |
Eloquent model representing the tenant |
table |
Database table used by the tenant model |
foreign_key |
Foreign key added to Boards tables |
Preparing the Database
After enabling multitenancy and configuring the tenant, run the following command:
php artisan boards:enable-multitenancy
This command will:
-
publish or update required migrations
-
add tenant foreign keys to Boards tables
-
prepare the database for multitenant usage
Then run migrations:
php artisan migrate
Disabling Multitenancy
If you need to disable multitenancy later, run:
php artisan boards:disable-multitenancy
This will revert the database structure back to single-tenant mode where possible.
Notes
-
Multitenancy is disabled by default
-
Boards will automatically scope all queries to the currently active tenant
-
The tenant resolution logic is compatible with Filament’s panel context
-
You are responsible for ensuring the active tenant is correctly resolved in your application
View Customization (Optional)
If you want to fully customize the appearance of Boards, you can publish the plugin views:
php artisan vendor:publish --tag="boards-views"
Credits
License
The MIT License (MIT). Please see License File for more information.