filament/spatie-laravel-tags-plugin
Filament form component for Spatie Laravel Tags: a tags input that attaches, edits, and groups model tags via an optional type(), supporting the original tags input's customizations. Note that leaving type() unset matches and attaches tags across every type in your database.
composer require, publish the tags migration, prepare the model, add SpatieTagsInput::make('tags') to the form and a matching column/table filter. That is a days-not-sprints delta versus building tag CRUD, pivot tables, autocomplete, and validation ourselves.spatie/laravel-tags library and only the admin UI comes from this plugin, we can commit to a thin v1 (flat tags on one model) and expand later (typed/grouped tags via ->type('categories')) without a schema rewrite. That makes tagging a safe "yes" in a release even when the long-term taxonomy is still undecided.filamentphp/filament monorepo. That means the code is maintained upstream alongside the core framework — good for longevity — but also that our version cadence is coupled to Filament major releases (currently ^5.0). Budget for that upgrade path rather than treating this as an independent dependency.Adopt when most of these are true:
spatie/laravel-tags as the tagging data model — i.e., flat tags optionally grouped by type, stored in Spatie's tables.Look elsewhere — or plan custom work — when:
^5.0 is a hard constraint).filament/filament. Conversely, don't plan to fork or file issues here; the split is read-only and support flows upstream. Evaluate it on the parent project's health, not this repo's.To executives: Tagging is a recurring, high-visibility request across content, support, and segmentation use cases. This plugin lets us deliver it as configuration on top of two well-established open-source foundations — Filament (our admin framework) and Spatie's tagging library — instead of a custom build. Expected effort is measured in days rather than weeks, ongoing maintenance is near-zero because the code ships with Filament itself, and it keeps our admin UI consistent rather than adding another one-off screen. The main trade-off to acknowledge is version coupling: we move when Filament moves.
To engineering: Add the package via Composer with -W, publish and run Spatie's tags migration, and prepare the target models per Spatie's docs. Then it is a drop-in SpatieTagsInput in forms and the corresponding column in tables, with full parity to Filament's native tags input — including optional ->type() grouping for tag collections. Two caveats to design around: (1) the README flags tag types and privilege namespaces as a security concern, so agree the namespace/type scheme up front if tags are permission-relevant; (2) this repository is a read-only subtree split of the Filament monorepo — do not fork or patch it locally, and route issues/PRs upstream. Add a smoke test covering create/edit/filter on a tagged model, and treat Filament major upgrades as the trigger to re-verify this integration.
Bottom line: Low-cost, low-risk, high-leverage if we are on Filament and our tagging needs are conventional. If taxonomy governance, hierarchy, or tag analytics become product priorities, revisit and scope a dedicated solution rather than stretching this plugin.
How can I help you explore Laravel packages today?