marvinosswald/filament-input-select-affix
A Filament form component that combines a select dropdown with an input affix, letting users pick a prefix or suffix (like currency, unit, or domain) alongside a text field. Simple to install and configure for Laravel Filament forms.
Architecture fit
marvinosswald/filament-input-select-affix is a narrow, single-purpose Filament form component that adds prefix/suffix affixes (icons, text) to a Select field. Architecturally it is a thin UI extension layered on Filament's field API — it does not introduce services, persistence, queues, or middleware, so it has essentially zero footprint on application architecture. Fit is limited to admin/panel surfaces built with Filament; it delivers no value outside that context.
Integration feasibility Low effort. Composer-installable, registered through Filament's standard field registration, usable inline in form schemas. The 0.3.0 release removes the primary blocker we would have hit: Laravel 12 compatibility (contributed via Laravel Shift, PR #19). Prior to this, adoption on a Laravel 12 codebase would have required a version constraint override or a fork. Remaining feasibility question is Filament major-version support (v3 vs v4), which the release notes do not address.
Technical risk
fetch-metadata, laravel-pint-action) plus the compatibility PR. No new features, no deprecations, no documented breaking changes. Low blast radius.Key questions
Select that would make this package redundant?Select?Stack fit Requires a Laravel + Filament panel application. Confirmed compatible with Laravel 12 as of 0.3.0. Confirm Filament major alignment before adoption. Not suitable for non-Filament admin surfaces, and not a substitute for a general form-builder dependency — scope it to the specific forms that need affixed selects.
Migration path
Greenfield: add the constraint and pin. Existing installs on 0.2.0: bump to 0.3.0 with an exact pin ("0.3.0" rather than ^0.3), run the panel smoke test on affected forms, and verify affix rendering in both light and dark themes. Because the release is compatibility + CI only, no data migration, config publishing, or asset rebuild is expected — but confirm whether any published views/assets need republishing if the package ships them.
Compatibility
composer.json for the minimum PHP version against our runtime images.Sequencing
composer.json.0.3.0 on a Laravel 12 branch, exercise two or three representative affixed-select forms.Maintenance Low ongoing cost, but non-zero ownership: we are effectively tracking a pre-1.0 community package with a single maintainer. Recommend an internal owner, exact version pinning, and a periodic review (quarterly) of upstream activity. Because the package is small, forking is a credible fallback if it stalls — budget that as a known exit path rather than a surprise.
Support No commercial support; GitHub issues only. Our internal support burden is limited to "affix not rendering / misaligned" class tickets, which are cosmetic and low severity. Document the dependency in the admin-panel runbook so on-call knows where to look.
Scaling Effectively a non-issue. It is a per-request form-rendering concern with no runtime services, no background work, no datastore. It does not affect throughput, queue depth, or horizontal scaling. The only "scaling" dimension is blast radius: a broken release affects every panel form using the field, so scope adoption to the forms that actually need affixes.
Failure modes
Select → surfaced in the spike; low likelihood.Ramp-up Near-zero for developers already fluent in Filament form schemas — the API is a field method chain. Estimate under an hour to first productive use, plus the spike time. The real ramp-up cost sits with QA/design, who need to validate affix appearance across themes and responsive breakpoints.
Recommendation
Adopt 0.3.0 conditionally: pin exactly, confirm Filament major and PHP floor, complete the two-form spike, and proceed only if the framework does not already provide native affix support on Select. Treat as a low-risk convenience dependency, not infrastructure.
How can I help you explore Laravel packages today?