filafly/filament-carbon-icons
Add IBM Carbon icons to Filament with filafly/filament-carbon-icons. Use the full Carbon icon set in forms, tables, navigation, actions, and buttons via simple icon names. Lightweight integration for consistent, accessible icons across your Filament admin panels.
Evidence base caveat: The only signal available is the v1.1.0 changelog ("Added Filament 5 support while maintaining Filament 4 compatibility"). Package identity, versioning history, and test coverage were not supplied. Everything below is a TPM-level read of that single data point, with explicit assumptions called out so they can be validated in a discovery pass.
Architecture fit. The change tells us the package is an extension of Filament — it ships panels/resources/widgets, a plugin, or a field/column type that registers against Filament's service provider and component registry. That is architecturally favourable for us: it means the package does not own our domain layer, does not add a second ORM or routing paradigm, and sits on top of the standard Laravel service container, config publishing, and migrations we already operate. The principal coupling risk is to Filament internals (asset registration, panel configuration, Livewire component contracts) rather than to Laravel core, so blast radius on upgrade is bounded to the admin surface.
Integration feasibility. Dual-major support (4 and 5) in a single release line is the most important detail here and it cuts both ways. Positively, it means we can adopt the package on a Filament 4 codebase today and carry the same dependency forward through a Filament 5 migration without waiting on a fork or a package swap. Negatively, dual-support in one branch is usually implemented with composer || constraints plus runtime version branching or conditional class aliases — a pattern that tends to accumulate class_exists checks, divergent view paths, and test matrices that only exercise the happy path on the newer major. Feasibility is high; confidence in the 4.x path specifically is the thing to test, since the newest major usually receives the freshest attention.
Technical risk.
FilamentAsset::register(). Filament majors have historically changed Vite/Tailwind conventions; a stale published asset set is a common source of "works in 4, broken styling in 5."Key questions for the maintainer / discovery.
2.x line we would need to move to? What are the exact composer constraints?vendor:publish required on upgrade?Stack fit. Assumes a conventional Laravel application with Filament as the admin surface, Composer for dependency management, and a standard CI pipeline. The package slots in as a normal Filament plugin: composer require, register the plugin on the relevant panel provider, publish config/assets where required. No bespoke infrastructure, no queue or external service dependency implied. This is a low-friction fit and does not require any change to our application architecture.
Migration path. Two distinct paths exist and should be decided explicitly rather than defaulted:
Path A is clearly preferable unless the package is only being introduced as part of a Filament 5 initiative. Note that Path A does not remove the need to re-validate on Filament 5; it just decouples the two events.
Compatibility. Verify the composer constraint intersection before committing: our Laravel version, our PHP version, our Filament constraint, and this package's constraint must all resolve. Run composer why-not against the target version as a fast check. Confirm whether the package requires a minimum Filament 4 patch release — dual-support implementations often bump the floor on the older major to reach a shared API.
Sequencing.
Maintenance. The dual-major release is good news operationally: it means the package is unlikely to force an emergency admin-panel migration on Filament's cadence. The ongoing cost is the usual one for Filament plugins — published assets and config drift from the package defaults, and the need to re-publish or re-diff on upgrade. Budget a recurring, low-effort review each time Filament ships a major. The real maintenance question is the maintainer's support-window policy: if Filament 4 support is dropped abruptly, we inherit a forced upgrade.
Support. Internal support burden should be modest, but it concentrates in one place: the admin panel. Failures here are highly visible to internal users and often to customers-facing operations staff, so the perceived severity is disproportionate to the technical severity. There is no upstream vendor SLA implied — this looks like a community package. Establish internally who owns the Filament panel and make them the named owner of this dependency.
Scaling. Filament plugins typically add UI-layer components — widgets, tables, form fields. Scaling concerns are therefore mostly request-path: N+1 queries in custom widgets or table columns, and Livewire round-trips on large tables. Nothing about this release suggests a new scaling risk, but any package that renders data in a table should be profiled against production-sized datasets before panel-wide enablement. Horizontal scaling is unaffected: no new stateful services, no new background workers, no new persistent connections.
Failure modes. Ranked by likelihood:
Ramp-up. Low for a developer already fluent in Filament — the integration is register-plus-publish. The non-obvious learning is the dual-major behaviour: engineers need to know which Filament version they are on locally and that "it works on my machine" may mean "it works on Filament 5." Make the Filament major explicit in local setup docs and in CI. For a TPM, the ramp-up cost is mostly the discovery pass in the Technical Evaluation section — an afternoon of reading the package's composer.json, CI config, and changelog to convert the assumptions above into facts. That pass is worth doing before the package reaches a production panel.
How can I help you explore Laravel packages today?