awcodes/filament-addons
A set of handy add-ons and reusable components that extend Filament, Laravel's admin panel framework. Quickly add extra UI elements and utilities to your forms, tables, and panels by installing via Composer and registering the plugin.
Architecture fit: awcodes/filament-addons extends the presentation layer of Laravel applications already standardized on Filament for admin, internal tooling, or CMS back office. It ships form fields, table columns, actions, and Blade components — no domain logic, no persistence, no workflow engine. For a TPM that is the preferred shape: a rendering failure or a removal is contained to admin surfaces rather than business transactions. The one exception is the OEmbed field, which inserts an outbound HTTP call into the admin render path. That component must be planned as a third-party integration — latency, availability, privacy, CSP frame-src — not as a styling convenience. Everything else is a straightforward build-vs-buy line item measured in saved admin-UI engineering days.
Integration feasibility: Composer install, Laravel auto-discovery, and either implicit component registration or a single plugin entry in the panel provider. The effort is not in the install; it is in three tasks a TPM should schedule explicitly rather than let engineering absorb into a feature estimate: (1) confirming class and namespace names on the exact 0.3.15 tag, since pre-1.0 packages rename between minors; (2) adding the vendor view paths to the Filament theme's Tailwind content globs and rebuilding — the classic silent failure, where components render correctly in dev and unstyled in a production build; (3) exercising the OEmbed path against real providers and the failure cases. A Filament-fluent developer closes this inside a day; the program risk is that the day is never booked.
Technical risk: Moderate, and concentrated in maintenance and version drift rather than in code complexity.
0.3.x line with no stability contract. ^0.3 is not a safety guarantee; minor bumps may break call sites.0.3.15 fix closes one known exception path, not the class of failure; caching and an allow-list are ours to build.Key questions:
0.3.15 actually support, and has anyone tested it against our Filament/Laravel/PHP matrix?Stack fit: Adopt only where the product runs Laravel + Filament and there is a named component requirement — realistically the OEmbed field for editorial, CMS, or internal-tooling back office. Off that stack, zero applicability. If the admin layer is mid-migration or the framework decision is still open, stop: installing a Filament-specific addon is a soft vote for Filament, and that commitment should be deliberate, not a side effect of a Composer require and a forgotten lockfile entry. If the need is exactly one embed field and the team is not already committed to Filament, a small in-house Livewire component is cheaper to own than a dependency with an uncertain future.
Migration path: 0.3.15 is a bug-fix patch — no migration. For existing adopters on ≤0.3.14 hitting exceptions from the embed field, upgrading is the fix, with no config change. For new adopters there is no migration, only a controlled introduction: land it behind a feature flag on a single panel, use exactly one component, and defer the rest of the addon set until a second concrete need appears. Component libraries tend to become standards by attrition; resist that.
Compatibility: Pin exactly (0.3.15) for the evaluation and loosen only after the spike passes. Verify in the spike, not in the feature: service-provider discovery, plugin registration, published view/config tags, Tailwind content globs, and a production theme build. Confirm the CSP frame-src allow-list and the provider domain set before the first staging deploy. Treat every minor bump as potentially breaking and read the changelog on each.
Sequencing: Five gates, in order. (1) Decision and named owner recorded — including explicit acknowledgment that this votes for Filament if the platform choice is still live. (2) Timeboxed compatibility spike on a branch against our real matrix, including the OEmbed failure matrix and a production asset build. (3) Scoped pilot behind a flag on one panel with one component. (4) Keep/fork/replace review against pre-agreed exit criteria — exit cost, upstream activity, advisory status, observed failure rate. (5) Only then relax the pin or expand surface area. Each gate has a named approver; the pilot does not graduate by default.
Maintenance: One named internal owner, not a team. Quarterly review of upstream activity, Filament major compatibility, and advisories on transitive dependencies — scheduled, not ad hoc. Changelog review on every bump, with minor releases treated as potentially breaking. Budget the fork option honestly: the component surface is small enough that vendoring the one field we use is a realistic fallback rather than a crisis response, which materially lowers the cost of the decision.
Support: No vendor, no SLA, no LTS. Internal support is the only support. That means we own the runbook: the Tailwind glob gotcha, the OEmbed allow-list, the cache TTL, the CSP entry, and the fork procedure. Publish it, because the second engineer to touch this will otherwise rediscover all of it. The package's real program value is arguably this template — it sets the bar for the next ten low-traffic community dependencies we evaluate.
Scaling: Fine at admin-panel concurrency, with one caveat. The OEmbed field issues an outbound call at render time, so an infolist showing N rows can produce N provider requests. Cache resolved metadata, validate on save with a host allow-list, and degrade rather than block. The scaling ceiling here is provider latency and rate limits, not the package. Watch admin page p95 after rollout; "the admin got slow" will be the first symptom and it will not present as a dependency problem.
Failure modes:
Http::fake() so CI never calls providers.Ramp-up: Under a day for a developer already fluent in Filament, but the onboarding burden is documentation, not skill. Capture the pin policy, the theme-glob step, the allow-list, and the OEmbed test pattern in-repo. The TPM leverage is not the saved component code — it is converting a one-off install into a repeatable, reviewable pattern for how this organization adopts small community packages into production admin surfaces. On that measure, approve a contained single-panel pilot with a pin, an owner, and a scheduled review — not a blanket dependency.
How can I help you explore Laravel packages today?