Download the PHP package relaticle/flowforge without Composer
On this page you can find all versions of the php package relaticle/flowforge. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download relaticle/flowforge
More information about relaticle/flowforge
Files in relaticle/flowforge
Package flowforge
Short Description Flowforge is a lightweight Kanban board package for Filament that works with existing Eloquent models.
License MIT
Homepage https://github.com/relaticle/flowforge
Informations about the package flowforge
Flowforge
Transform any Laravel model into a production-ready drag-and-drop Kanban board.
Why Flowforge?
- 3 Integration Patterns - Filament Pages, Resources, or standalone Livewire
- Production-Ready - Handles 100+ cards per column with intelligent pagination
- Zero Configuration - Works with your existing models and database
- Fully Customizable - Actions, schemas, filters, and themes
Quick Start
1. Install Package
2. Include CSS Assets
[!IMPORTANT] If you have not set up a custom theme and are using Filament Panels, follow the instructions in the Filament Docs first.
After setting up a custom theme, add the plugin's views to your theme's CSS file.
3. Add Position Column
3. Generate Board
4. Register Page
Done! Visit your Filament panel to see your Kanban board in action.
5. Repair Positions (Optional)
If you need to fix corrupted or missing position data:
Requirements
- PHP: 8.3+
- Laravel: 11+
- Filament: 4.x
- Database: MySQL, PostgreSQL, SQLite, SQL Server, MariaDB
Integration Patterns
Pattern 1: Filament Page
Perfect for dedicated board pages in your admin panel. **Use when:** You want a standalone Kanban page in your admin panel **Benefits:** Full Filament integration, automatic registration, built-in actionsPattern 2: Resource Integration
Integrate with your existing Filament resources. Perfect for campaign management where teams track tasks within campaigns. **Use when:** You want to add Kanban to existing Filament resources **Benefits:** Inherits resource permissions, policies, and global scopesPattern 3: Standalone Livewire
Use outside of Filament or in custom applications. **Use when:** Building custom interfaces or non-Filament applications **Benefits:** Maximum flexibility, custom styling, independent routingCustomization
Rich Card Content
Actions and Interactions
Column Actions (Create, Bulk Operations)
Card Actions (Edit, Delete, Custom)
Search and Filtering
Advanced Filtering
Database Schema
Required Fields
Database-Specific Collations
The flowforgePositionColumn()
method automatically applies the correct binary collation for each database:
Database | Collation | Purpose |
---|---|---|
MySQL/MariaDB | utf8mb4_bin |
Binary comparison by character code values |
PostgreSQL | C |
Binary byte comparison (POSIX locale) |
SQL Server | Latin1_General_BIN2 |
Unicode code-point comparison |
SQLite | None | Uses BINARY collation by default |
These collations ensure consistent fractional ranking behavior across all database systems.
Testing
Testing Your Boards
Performance Features
- Intelligent Pagination: Efficiently handles 100+ cards per column
- Infinite Scroll: Smooth loading with 80% scroll threshold
- Optimistic UI: Immediate feedback with rollback on errors
- Position Algorithm: Fractional ranking prevents database locks
- Query Optimization: Cursor-based pagination with relationship eager loading
API Reference
Board Configuration
| Method | Description | Required | |--------|-------------|----------| | `query(Builder)` | Set data source | ✅ | | `columnIdentifier(string)` | Status field name | ✅ | | `positionIdentifier(string)` | Position field name | ✅ | | `columns(array)` | Define board columns | ✅ | | `recordTitleAttribute(string)` | Card title field | | | `cardSchema(Closure)` | Rich card content | | | `cardActions(array)` | Card-level actions | | | `columnActions(array)` | Column-level actions | | | `searchable(array)` | Enable search | | | `filters(array)` | Add filters | |Column Configuration
Troubleshooting
Common Issues & Solutions
### Cards not draggable **Cause:** Missing `positionIdentifier` or position column **Solution:** Add `->positionIdentifier('position')` and ensure database column exists ### Empty board **Cause:** Status values don't match column identifiers **Debug:** `dd($this->getEloquentQuery()->get())` to verify data ### Actions not working **Cause:** Missing traits or action configuration **Solution:** Ensure your class uses `InteractsWithActions`, `InteractsWithForms` ### New cards appear randomly **Cause:** Missing position in create actions **Solution:** Add `$data['position'] = $this->getBoardPositionInColumn($arguments['column']);` ### Corrupted or missing position data **Cause:** Database issues, manual edits, or migration problems **Solution:** Run `php artisan flowforge:repair-positions` to fix position dataContributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Implementation Guide - Complete developer guide
- Testing Examples - Production-ready test patterns
- Report Issues
License
MIT License. See LICENSE.md for details.
All versions of flowforge with dependencies
filament/filament Version ^4.0
spatie/laravel-package-tools Version ^1.15.0