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

Filament Badgeable Column Laravel Package

awcodes/filament-badgeable-column

Filament Badgeable Column lets you show additional context as badges alongside table column values. Add prefix or suffix badges with dynamic labels and colors, making statuses and metadata easier to scan in Filament tables.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Information density in admin UI: Lets PMs approve "more context per row" improvements to existing Filament tables (status, tags, flags, stock warnings) without a redesign or new screen. A single column can carry the record's primary value plus N contextual badges, which directly reduces clicks-to-comprehension for support, ops, and back-office users.
  • Build vs. buy on internal tooling: This is a cosmetic presentation layer over Filament's TextColumn — roughly a half-day of vendor-package integration versus an estimated 1–3 days of custom Blade views, styling, theme wiring, and maintenance across Filament upgrades. Default to buy (MIT, zero cost) unless the badge semantics require interaction (click-through, filtering, inline edit), which the package does not provide.
  • Roadmap sequencing for admin/back-office epics: Use it as a cheap, low-risk enabler for "at-a-glance triage" stories (e.g., show Active + Hot + topic badges on a products list) that can ship inside a sprint without schema changes, migrations, or API work.
  • Prioritizing which lists get context first: Because badges are defined per column with closures over the record, PMs can target the highest-traffic tables first (orders, tickets, inventory) and measure reduced drill-down navigation, rather than funding a platform-wide "metadata display" initiative.
  • Discovery/legibility experiments: Dynamic badge arrays via closure (e.g., mapping a BelongsToMany relation into colored badges) support A/B or iterative UX experiments on scanability — cheap to toggle, cheap to revert.
  • Scope containment against feature creep: The package's explicit limits (visual affixes only; no filtering, sorting-by-badge, or click actions) are a useful forcing function in refinement — if a stakeholder asks for badge-driven filtering, that's a separate, larger ticket.

When to Consider This Package

Adopt when all of the following hold:

  • The product surface is a Filament panel or standalone Filament Tables/Infolists admin UI; the package is meaningless outside that stack.
  • The need is read-only, presentational context next to a column value or infolist entry — status chips, tags, priority flags, low-stock warnings.
  • The team is already on a supported Filament line (4.x or 5.x via package 4.x; 3.x via package 3.x; 2.x via 1.x). Version alignment is the single biggest adoption risk here.
  • The team can accept a custom Filament theme and one CSS @source line in the theme file — a real but modest prerequisite, and a hidden cost if the team has never built a custom theme.
  • Low blast radius matters: this is an unopinionated, easily removed dependency, so a reversible "try it on one table" pilot is legitimate.

Look elsewhere (or build in-house) when:

  • You need behavioral badges: clickable badges, badge-based filters, aggregate counts, or badges that drive query/sort logic. Filament's native TextColumn with badge(), IconColumn, or a custom column/view is the better fit and avoids a wrapper dependency.
  • The team is on EOL Laravel/Filament versions or pins a Filament minor that has broken affix signatures before — releases v3.2.1 and v4.1.0 exist precisely because upstream TextColumn::getPrefix()/getSuffix() signature changes caused fatal errors. If the org cannot absorb occasional pin/upgrade churn on a small package, prefer native columns.
  • You need guaranteed long-term support: 148 stars, 0 dependents, and a single-maintainer, single-purpose package signal low ecosystem gravity. Fine for a cosmetic affordance; a poor foundation for a load-bearing UX pattern.
  • Localization, accessibility, or design-system conformance requirements are strict — badge color/shape/font options are limited to what the package and Filament expose; a bespoke component gives full control over ARIA labeling and design tokens.

How to Pitch It (Stakeholders)

To executives (30 seconds): Our admin tool already shows lists of records, but each row hides context our teams need — status, tags, warnings. Today people click into records to find it. This free, MIT-licensed package lets us render that context as small colored badges directly in the list, using the framework we already have. Cost is effectively a day of engineering, no licensing, no new infrastructure, and it's removable in one line if we don't like it. Expected outcome: fewer clicks per decision in our highest-traffic back-office screens.

To engineering: awcodes/filament-badgeable-column extends Filament's TextColumn with prefixBadges() / suffixBadges(), accepting Badge objects or closures returning them, with per-record label(), color(), visible(). Supports pills, custom separators, font family/weight/size, and works in infolists. Integration is composer require, a custom theme, and one @source line in the theme CSS — no migrations, no service provider wiring, no API surface changes.

Known risks to state up front: (1) Version coupling — upstream Filament changed getPrefix()/getSuffix() signatures in 4.15/5.10 and broke the package until a patch shipped; expect to occasionally pin or bump. (2) Maintenance concentration — one maintainer, no dependents, cosmetic scope; treat as a leaf dependency, not a platform bet. (3) Capability ceiling — badges are display-only; filtering, sorting, or clicking on them is out of scope and would require native Filament columns.

Recommendation: Approve a time-boxed pilot on one high-traffic table (e.g., products or orders), with a one-sprint evaluation of scanability and support-ticket impact, and an explicit fallback to native TextColumn::badge() if theming or version churn proves costly.

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.
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table