relaticle/flowforge
Flowforge is a lightweight Kanban board package for Filament that works with existing Eloquent models.
v4.1.0
173K downloads/mo
#3389 most downloaded on Packagist
relaticle/flowforge
What this package is like to depend on
Last release 4 days ago
19 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Some releases are documented
notes for 23 of 51 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
57 releases · first in 2025
40 releases in the last 12 months
see the full history below
Release timeline
56 releases · Mar 2025 to Aug 2026Releases
latest 57-
v4.1.019 Aug 2026Release notes
Open source →Two card action fixes and Laravel 13 support. No API changes, no configuration changes.
Supersedes v4.0.15, which shipped the same two fixes a few minutes earlier. Laravel 13 support arrived right after, and a minor is the honest place for it, so upgrade straight to this.
Repeaters and other nested actions inside a card action modal (#156)
Opening an
EditActionfromcardActions()whose schema contained aRepeater, then clicking add or remove, closed the modal without applying the change. Afterwards no card action responded to clicks until the page was reloaded.Filament attaches
recordKeyto the context of any action that has a record, so a schema component action nested inside a mounted card action inherited the card's record and arrived carrying bothrecordKeyandschemaComponent.BoardResourcePage::resolveActions()checkedrecordKeyfirst and routed it to the board resolver, which could not find it, silently dropping the mounted entry. The open modal closed, and the orphaned entry left the action stack unusable.Board detection now runs after schema and table detection, matching the ordering in Filament's own
InteractsWithActions::resolveActions(). This also covers the repeater's delete, reorder and clone actions,Select::createOptionAction(), Builder, and nested action modals.BoardPagewas never affected.Card actions with a url (#164)
->cardActions([ Action::make('view') ->url(fn (Task $record): string => TaskResource::getUrl('view', ['record' => $record])), ]) ->cardAction('view')
Clicking a card did nothing at all: no navigation, no modal, nothing logged. The card blade hardcoded a
mountAction()handler, andgetCardAction()returns only a name, so the action's url was never read. The same action rendered correctly as a link in the card's actions dropdown.The card now renders as an anchor when the action has a url, using the same
generate_href_html()helper Filament's table rows use forrecordUrl, so SPA mode, prefetching, modifier keys and->openUrlInNewTab()all behave as they do elsewhere in the panel.The url decides, with no check of the action's modal state. That is Filament's rule:
ListRecords::table()hasrecordAction()skip any action whosegetUrl()is filled andrecordUrl()take it instead. An action declaring both a url and a modal therefore renders as a link and never opens that modal, in a board card exactly as in a table row. Declare one or the other. Only->postToUrl()actions stay on the click handler, since a POST needs a form rather than an anchor.Laravel 13
Both bug reports above were filed against Laravel 13, which the dev constraints did not allow, so nothing verified the package there.
orchestra/testbenchnow accepts^10.11|^11.0and the Pest packages^4.0|^5.0, with a Laravel 13 job added to the CI matrix. The suite passes on both: 161 tests on Laravel 12.67 with Pest 4, and on Laravel 13.26 with Pest 5.The runtime
requireblock is unchanged, so this does not alter what your application needs.Maintenance
- Docs deploy has been fixed. It had failed on every push since
better-sqlite3was bumped to 13.0.3, becausedocusdeclares a12.xpeer andnpm ciaborted on ERESOLVE. - Two advisories patched in the docs lockfile: esbuild
<0.28.1(arbitrary file read via the dev server) and sharp<0.35.0(inherited libvips CVEs).npm audit --omit=devnow reports zero vulnerabilities.
Upgrading
composer update relaticle/flowforge. Nothing to change in your board configuration. - Docs deploy has been fixed. It had failed on every push since
-
v4.0.1519 Aug 2026Release notes
Open source →Two card action fixes. No API changes, no configuration changes.
Repeaters and other nested actions inside a card action modal (#156)
Opening an
EditActionfromcardActions()whose schema contained aRepeater, then clicking add or remove, closed the modal without applying the change. Afterwards no card action responded to clicks until the page was reloaded.Filament attaches
recordKeyto the context of any action that has a record, so a schema component action nested inside a mounted card action inherited the card's record and arrived carrying bothrecordKeyandschemaComponent.BoardResourcePage::resolveActions()checkedrecordKeyfirst and routed it to the board resolver, which could not find it, silently dropping the mounted entry. The open modal closed, and the orphaned entry left the action stack unusable.Board detection now runs after schema and table detection, matching the ordering in Filament's own
InteractsWithActions::resolveActions(). This also covers the repeater's delete, reorder and clone actions,Select::createOptionAction(), Builder, and nested action modals.BoardPagewas never affected.Card actions with a url (#164)
->cardActions([ Action::make('view') ->url(fn (Task $record): string => TaskResource::getUrl('view', ['record' => $record])), ]) ->cardAction('view')
Clicking a card did nothing at all: no navigation, no modal, nothing logged. The card blade hardcoded a
mountAction()handler, andgetCardAction()returns only a name, so the action's url was never read. The same action rendered correctly as a link in the card's actions dropdown.The card now renders as an anchor when the action has a url, using the same
generate_href_html()helper Filament's table rows use forrecordUrl, so SPA mode, prefetching, modifier keys and->openUrlInNewTab()all behave as they do elsewhere in the panel.The url decides, with no check of the action's modal state. That is Filament's rule:
ListRecords::table()hasrecordAction()skip any action whosegetUrl()is filled andrecordUrl()take it instead. An action declaring both a url and a modal therefore renders as a link and never opens that modal, in a board card exactly as in a table row. Declare one or the other. Only->postToUrl()actions stay on the click handler, since a POST needs a form rather than an anchor.Upgrading
composer update relaticle/flowforge. Nothing to change in your board configuration. -
v4.0.1413 Jul 2026Release notes
Open source →What's Changed
Other Changes
- build(deps): bump nuxt from 4.4.6 to 4.4.8 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #136
- build(deps): bump the npm_and_yarn group across 2 directories with 5 updates by @dependabot[bot] in #137
- build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #138
- fix(docs): unbreak docs deploy on node 24 + resync lockfile [4.x] by @ManukMinasyan in #139
- build(deps): bump @nuxt/scripts from 0.12.2 to 1.3.0 in /docs by @dependabot[bot] in #140
Full Changelog: v4.0.13...v4.0.14
-
v4.0.1314 Jun 2026Release notes
Open source →What's Changed
Other Changes
- ci: open changelog PR instead of pushing to protected branch [4.x] by @ManukMinasyan in #125
- build(deps): bump devalue from 5.8.0 to 5.8.1 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #128
- build(deps): bump peter-evans/create-pull-request from 7 to 8 by @dependabot[bot] in #127
- build(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #129
- build(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #132
- build(deps): bump hono from 4.12.18 to 4.12.23 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #133
- build(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #134
- build(deps-dev): bump esbuild from 0.25.12 to 0.28.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #135
Full Changelog: v4.0.12...v4.0.13
-
v4.0.1212 May 2026Release notes
Open source →What's Changed
Other Changes
- ci: make release workflow idempotent [4.x] by @ManukMinasyan in #117
- build(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #118
- build(deps): bump ip-address from 10.1.0 to 10.2.0 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #120
- build(deps): bump the npm_and_yarn group across 2 directories with 4 updates by @dependabot[bot] in #121
- build(deps): bump nuxt-og-image from 6.3.7 to 6.5.0 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #122
- build(deps): bump fast-uri from 3.1.0 to 3.1.2 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #123
- fix: pass 'column' argument to CreateAction mutateDataUsing by @eduardoribeirodev in #124
Full Changelog: v4.0.11...v4.0.12
Release notes
Open source →What's Changed
Other Changes
- ci: make release workflow idempotent [4.x] by @ManukMinasyan in https://github.com/relaticle/flowforge/pull/117
- build(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/118
- build(deps): bump ip-address from 10.1.0 to 10.2.0 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/120
- build(deps): bump the npm_and_yarn group across 2 directories with 4 updates by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/121
- build(deps): bump nuxt-og-image from 6.3.7 to 6.5.0 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/122
- build(deps): bump fast-uri from 3.1.0 to 3.1.2 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/123
- fix: pass 'column' argument to CreateAction mutateDataUsing by @eduardoribeirodev in https://github.com/relaticle/flowforge/pull/124
Full Changelog: https://github.com/relaticle/flowforge/compare/v4.0.11...v4.0.12
-
v4.0.1125 Apr 2026Release notes
Open source →What's Changed
Other Changes
- Add enum helper to column by @paulhennell in #100
- Adding filament style hidden option to columns by @paulhennell in #101
- build(deps): bump dependabot/fetch-metadata from 3.0.0 to 3.1.0 by @dependabot[bot] in #115
- 4.x enum helper by @cheesegrits in #116
New Contributors
- @paulhennell made their first contribution in #100
Full Changelog: v4.0.10...v4.0.11
Release notes
Open source →What's Changed
Other Changes
- Add enum helper to column by @paulhennell in https://github.com/relaticle/flowforge/pull/100
- Adding filament style hidden option to columns by @paulhennell in https://github.com/relaticle/flowforge/pull/101
- build(deps): bump dependabot/fetch-metadata from 3.0.0 to 3.1.0 by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/115
- 4.x enum helper by @cheesegrits in https://github.com/relaticle/flowforge/pull/116
New Contributors
- @paulhennell made their first contribution in https://github.com/relaticle/flowforge/pull/100
Full Changelog: https://github.com/relaticle/flowforge/compare/v4.0.10...v4.0.11
-
v4.0.1017 Apr 2026Release notes
Open source →What's Changed
Other Changes
- build(deps-dev): bump follow-redirects from 1.15.11 to 1.16.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #111
- build(deps): bump hono from 4.12.12 to 4.12.14 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #112
- fix: correct top-drop position to stay at top [4.x] by @ManukMinasyan in #114
Full Changelog: v4.0.9...v4.0.10
Release notes
Open source →What's Changed
Other Changes
- build(deps-dev): bump follow-redirects from 1.15.11 to 1.16.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/111
- build(deps): bump hono from 4.12.12 to 4.12.14 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/relaticle/flowforge/pull/112
- fix: correct top-drop position to stay at top [4.x] by @ManukMinasyan in https://github.com/relaticle/flowforge/pull/114
Full Changelog: https://github.com/relaticle/flowforge/compare/v4.0.9...v4.0.10
-
v4.0.910 Apr 2026Release notes
Open source →What's Changed
Other Changes
- build(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 by @dependabot[bot] in #98
- fix: improve drag-and-drop scroll sensitivity in columns by @ManukMinasyan in #103
- build(deps): bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /docs by @dependabot[bot] in #105
- build(deps): bump the npm_and_yarn group across 2 directories with 22 updates by @dependabot[bot] in #104
Full Changelog: v4.0.8...v4.0.9
Release notes
Open source →Fixed
- Improve drag-and-drop scroll sensitivity in columns
Docs
- Remove redundant introduction page from getting-started
-
v4.0.818 Mar 2026Release notes
Open source →Fixes
- Fix nested
fi-page-header-main-ctnwrapper causing board page headings to sit lower than resource list pages - Persist search query in URL (
?search=) matching existing filter URL persistence - Remove redundant "remove all filters" button from indicator row (Reset in dropdown handles this)
- Use
gap-x-5instead ofgap-5on board column container
- Fix nested
-
v4.0.716 Mar 2026Release notes
Open source →What's Changed
New Features
- Header Toolbar: New
headerToolbar()method renders filter/search controls inline with the page title for a compact board layout. Supports Dropdown and Modal filter layouts. Disabled by default for backward compatibility.
Bug Fixes
- Fix filter dropdown styling by using native Filament CSS context (
fi-ta-ctn) instead of inline JS workaround - Add proper Modal/slide-over support to header toolbar
- Respect
TablesRenderHook::FILTER_INDICATORSin header toolbar
Documentation
- Add
headerToolbar()to API reference and customization guide
Full Changelog: https://github.com/relaticle/flowforge/compare/v4.0.6...v4.0.7
- Header Toolbar: New
-
v4.0.615 Mar 2026Nothing published for this version
-
v4.0.506 Mar 2026Release notes
Open source →Fixed
- Cast record ID to string in
formatBoardRecord()to prevent JavaScript precision loss with large integer IDs (snowflakes) (#88, #92)
- Cast record ID to string in
-
v4.0.401 Mar 2026Release notes
Open source →What's Changed
- fix: support standalone Filament usage without panel dependency by @ManukMinasyan in https://github.com/relaticle/flowforge/pull/86
Full Changelog: https://github.com/relaticle/flowforge/compare/v4.0.3...v4.0.4
-
v4.0.329 Jan 2026Nothing published for this version
-
v4.0.228 Jan 2026Release notes
Open source →Fixed
- Fixed card ID attributes not being present for drag operations, preventing potential errors during card moves
-
v4.0.127 Jan 2026Release notes
Open source →Bug Fixes
- Import DB facade for database operations in HasBoardRecords (#80)
-
v4.0.017 Jan 2026Release notes
Open source →Breaking Changes
- Filament Version: Now requires Filament 5.x (was 4.x)
Added
- Full compatibility with Filament 5.x
Migration
See Upgrading Guide for migration instructions from v3.x.
-
v3.0.717 Apr 2026Release notes
Open source →What's Changed
Other Changes
- Fixing search and filter styling to match Filament table layouts by @Luckcatcher in #109
- fix: correct top-drop position to stay at top [3.x] by @ManukMinasyan in #113
New Contributors
- @Luckcatcher made their first contribution in #109
Full Changelog: v3.0.6...v3.0.7
-
v3.0.610 Apr 2026Release notes
Open source →What's Changed
Other Changes
- Backport scroll improvements to v3 by @cheesegrits in #108
New Contributors
- @cheesegrits made their first contribution in #108
Full Changelog: v3.0.5...v3.0.6
-
v3.0.510 Apr 2026Nothing published for this version
-
v3.0.415 Mar 2026Nothing published for this version
-
v3.0.306 Mar 2026Nothing published for this version
-
v3.0.228 Jan 2026Nothing published for this version
-
v3.0.128 Jan 2026Nothing published for this version
-
v3.0.011 Jan 2026Release notes
Open source →Breaking Changes
- Position column type changed from
VARCHARtoDECIMAL(20,10) - New dependency:
ext-bcmathPHP extension required - Removed:
Rank.phpservice (Lexorank algorithm) - Laravel version: Now requires Laravel 12+
Added
DecimalPositionservice with BCMath-based position calculationsPositionRebalancerservice for automatic gap management- Cryptographic jitter (±5%) prevents concurrent insertion collisions
- Auto-rebalancing when gap falls below 0.0001
- Retry mechanism with exponential backoff (50ms, 100ms, 200ms)
MaxRetriesExceededExceptionfor conflict handlingflowforge:diagnose-positionscommand - detect gaps, inversions, duplicatesflowforge:rebalance-positionscommand - redistribute positions evenly- Support for custom primary keys via
getKeyName() - Comprehensive logging of rebalancing operations
UPGRADE.mdmigration guide for v2.x users
Changed
- Position algorithm from Lexorank (string) to DecimalPosition (decimal)
- Blueprint macro
flowforgePositionColumn()now createsDECIMAL(20,10) flowforge:repair-positionscommand now interactive with multiple strategies
Removed
Rank.phpservice- String-based position calculations
- Binary collation requirements
Migration
See UPGRADE.md for detailed migration instructions from v2.x.
- Position column type changed from
-
v3.0.0-beta311 Jan 2026 pre-releaseNothing published for this version
-
v3.0.0-beta227 Dec 2025 pre-releaseNothing published for this version
-
v3.0.0-beta126 Dec 2025 pre-releaseNothing published for this version
-
v2.2.104 Jan 2026Nothing published for this version
-
v2.2.013 Dec 2025Nothing published for this version
-
v2.1.113 Nov 2025Nothing published for this version
-
v2.1.012 Nov 2025 -
v2.0.921 Oct 2025Nothing published for this version
-
v2.0.817 Oct 2025Nothing published for this version
-
v2.0.711 Oct 2025Nothing published for this version
-
v2.0.604 Oct 2025Nothing published for this version
-
v2.0.529 Sep 2025Nothing published for this version
-
v2.0.427 Sep 2025Nothing published for this version
-
v2.0.313 Sep 2025Nothing published for this version
-
v2.0.229 Aug 2025Nothing published for this version
-
v2.0.125 Aug 2025Nothing published for this version
-
v2.0.025 Aug 2025Nothing published for this version
-
v2.0.0-beta3no date pre-releaseNothing published for this version
-
v2.0.0-beta224 Aug 2025 pre-releaseNothing published for this version
-
v2.0.0-beta120 Aug 2025 pre-releaseNothing published for this version
-
1.0.027 Jul 2025 -
0.2.129 May 2025Release notes
Open source →What's Changed
- Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 by @dependabot in https://github.com/Relaticle/flowforge/pull/10
- Fix empty translation file causing array_replace_recursive() error by @vasilGerginski in https://github.com/Relaticle/flowforge/pull/13
New Contributors
- @dependabot made their first contribution in https://github.com/Relaticle/flowforge/pull/10
- @vasilGerginski made their first contribution in https://github.com/Relaticle/flowforge/pull/13
Full Changelog: https://github.com/Relaticle/flowforge/compare/0.2.0...0.2.1
-
0.2.022 Apr 2025Release notes
Open source →Full Changelog: https://github.com/Relaticle/flowforge/compare/0.1.9...0.2.0
-
0.1.916 Apr 2025Release notes
Open source →Full Changelog: https://github.com/Relaticle/flowforge/compare/0.1.7...0.1.9
Full Changelog: https://github.com/Relaticle/flowforge/compare/0.1.7...0.1.9
-
0.1.816 Apr 2025Nothing published for this version
-
0.1.715 Apr 2025Nothing published for this version
-
0.1.613 Apr 2025Nothing published for this version
-
0.1.512 Apr 2025Nothing published for this version
-
0.1.411 Apr 2025Nothing published for this version
-
0.1.311 Apr 2025Nothing published for this version
-
0.1.204 Apr 2025Nothing published for this version
-
0.1.129 Mar 2025Nothing published for this version