filafly/filament-font-awesome-icons
Add Font Awesome icons to your Filament panels with filafly/filament-font-awesome-icons. Integrate Font Awesome icon sets for forms, tables, actions, and navigation, making it easy to browse and select icons throughout your admin UI.
This release is primarily a compatibility milestone: the package now supports Filament 5 alongside Filament 4. If you are already on Filament 4, v1.1.0 is a low-risk upgrade; if you have been holding off on Filament 5, this is the release that unblocks you.
Minimal path:
composer require <vendor>/<package>:"^1.1" — confirm Composer resolves filament/filament to ^4.0 || ^5.0 in the lock file rather than pinning you to one major.php artisan vendor:publish --tag=<package>-config), then review the published config for panel-specific defaults.PanelProvider::panel() chain — this is the first place to look when "nothing shows up."php artisan filament:upgrade (or the package's install command if it ships one) and clear caches.First use case to validate end-to-end: open the panel, confirm the package's resources/pages/widgets render, and exercise one write path (create or update) to prove the Filament 4/5 abstraction holds for your version.
Where to look first: the package's composer.json constraints, the CHANGELOG/UPGRADE notes, and the Filament plugin registration snippet in the README. Those three answer 90% of "why isn't this working" questions.
Pin the Filament major explicitly in your app. Dual support in the package means your composer.json decides which major you actually run. Treat filament/filament as a first-class direct dependency so a composer update can't silently shift you across majors.
Keep plugin registration in the panel provider, not a service provider. Filament plugins are panel-scoped. Registering in AppServiceProvider works for some packages but breaks in multi-panel apps where only one panel should get the feature.
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
\Vendor\Package\PackagePlugin::make(),
]);
}
Multi-panel apps: register the plugin per panel and drive configuration through the plugin's fluent setters rather than global config, so an admin panel and a customer portal can diverge without config gymnastics.
Avoid version_compare on Filament internals. With two supported majors, branching on version strings spreads compatibility logic through your app. Prefer the package's own public API and Filament's stable extension points (resources, pages, actions, schema/components). If you genuinely need divergence, isolate it in one adapter class.
Test against both majors in CI. A matrix of filament/filament:^4.0 and ^5.0 with the same test suite is the cheapest way to catch a regression the package's own tests missed. Use Orchestra Testbench or a bare Laravel skeleton with a panel provider registered in the test case.
Integrate at the resource layer. Day-to-day the leverage is extending the package's Filament resources: subclass, add your own form/table components, and override actions — rather than forking. This keeps you upgradeable across the 4→5 boundary.
Upgrade sequencing for existing apps: bump the package to ^1.1 first without touching Filament, deploy, confirm green. Then bump Filament separately. Two small PRs beat one unreviewable diff.
composer update, run composer show filament/filament and verify the major. Commit the lock file.php artisan config:cache and route:cache routinely mask panel registration issues in production but not locally. Reproduce any "works locally, blank in prod" bug with caches enabled before debugging further.app/Filament directory for Vendor\Package\ imports before bumping Filament.class_alias shims, service-container rebinding of package classes, and overriding vendor views by path — all three are what break on the next major.php artisan about / filament:optimize-clear) → config not cached → assets published → correct Filament major installed. Run them in that order.How can I help you explore Laravel packages today?