Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Nova Tags Field Laravel Package

marshmallow/nova-tags-field

A Laravel Nova tags field for attaching multiple tags to resources, with a searchable dropdown and tag management in the Nova admin panel. Simplifies many-to-many tagging for models like posts or projects while keeping editing fast and intuitive.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping for "tagging" requests: This package answers a narrow but recurring product question — do users need true taxonomy (many-to-many, tag management, rename/merge, counts, filtering at scale) or just a lightweight label on a record? It supports shipping the cheap version first (single text column, comma-separated) and deferring the expensive relational model until usage data justifies it.
  • Build vs. buy vs. skip: The "buy" here is tiny — one Nova field wrapping a text column. The PM decision is really build vs. skip: a native Nova Text field plus a model cast/accessor gets ~90% of this package's value with zero dependency risk. Use this package's existence as evidence that the simple pattern is legitimate, not as a reason to install it.
  • Internal tooling and admin-console roadmap: Best fit is back-office surfaces — an ops team tagging support tickets, accounts, or content for their own filtering — where the tag set is curated, low-cardinality, and nobody needs tag-level analytics.
  • Prioritization signal for the data model: Choosing single-column storage is a deliberate commitment that tags are display metadata, not a queryable dimension. That constrains future roadmap items (tag-based segmentation, tag facets, tag-driven automation). Make that trade-off explicitly, because reversing it later means a migration plus backfill.
  • Use cases to greenlight: freeform notes/labels on records, "needs review" style status markers, marketing/content categorization in an internal CMS, prototype/MVP tagging where the schema will be revisited.
  • Use cases to decline: anything customer-facing where tags drive navigation, search, or reporting; multi-tenant tag governance; tag rename/merge workflows; anything requiring WHERE tag IN (...) performance at volume.

When to Consider This Package

Consider the pattern (not necessarily this artifact) when all of the following hold:

  • You are on Laravel Nova and the field is for internal/admin users only.
  • Tags are freeform or semi-curated, and the expected count per record is small (single digits).
  • No requirement to filter, aggregate, or report by tag beyond a naive LIKE '%tag%'.
  • You accept that renaming a tag means a data migration across rows rather than one update.
  • The feature is genuinely disposable or the schema will be revisited within a quarter or two.

Look elsewhere — or write ten lines of your own — when any of these are true:

  • Maintenance risk is disqualifying. The repository is archived, has 1 star, 0 dependents, and no community. There will be no compatibility updates for future Nova majors, no security triage, and no bug fixes. Any adoption becomes a permanent fork you own.
  • Nova version drift. Nova's field API has changed across majors; an archived field is a latent upgrade blocker. Verify against your pinned Nova version before even prototyping.
  • You need relational semantics: spatie/laravel-tags (or a plain pivot table) for tag reuse, slugs, counts, and scoped queries.
  • You need typeahead/suggestions from existing tags — that requires reading distinct tags, which single-column storage makes awkward and slow.
  • Compliance/audit or multi-user editing matters; concurrent writes to one text column invite silent overwrites.
  • Selection criteria: treat this as a reference implementation to copy, not a dependency to install. Score-wise it sits at the very bottom of the opportunity range precisely because the value is replicable in-house with no supply-chain exposure.

How to Pitch It (Stakeholders)

To executives: There's an off-the-shelf Nova field that adds tagging to a record by storing tags as plain text in one column — no new tables, no joins, minimal engineering. It would let us ship a small internal labeling capability in days rather than a sprint. The catch is that the package is archived and effectively unmaintained (one star, no downstream users), so I don't recommend taking the dependency. The good news is the underlying idea is trivial: we can reproduce it with Nova's built-in text field and a model cast, capturing the same speed-to-value with none of the upgrade or security risk. Recommendation: adopt the pattern, skip the package.

To engineering: This is a single text column with comma-separated values and a Nova field for input. If we want the behavior, implement it natively — a Text field plus a small cast/accessor for array conversion, and a documented delimiter. Roughly half a day, including tests. Avoid the dependency: the repo is archived, so we'd own it forever and it would block Nova upgrades. If the product later needs tag reuse, renaming, counts, or filtering, that's a signal to move to a proper many-to-many model (spatie/laravel-tags or a pivot table) — and the single-column choice we're making now should be recorded as a deliberate, reversible-only-by-migration decision.

Ask: Approve the lightweight path for internal-only labeling now; flag any customer-facing tagging requirement for a relational design and a separate estimate.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel