devonab/filament-easy-footer
Add a customizable footer to your Filament admin with minimal setup. Configure position, custom text, logo + link, extra links, top border, optional GitHub version and page load time, enable/disable globally, and hide it on specific pages.
panels::footer, panels::sidebar.nav.end, panels::sidebar.footer), ensuring seamless integration with Filament’s architecture.filament-easy-footer-config), allowing runtime customization without modifying the plugin’s source.| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Filament Version Lock | Plugin may break if Filament undergoes major UI changes (e.g., render hook renames). | Monitor Filament’s changelog and test plugin compatibility during Filament upgrades. Use feature flags if custom render hooks are used. |
| Styling Dependencies | Requires a custom Filament theme and Tailwind CSS. Teams not using Tailwind may face styling challenges. | Document theme setup requirements in onboarding. Provide fallback CSS snippets for non-Tailwind projects. |
| GitHub API Dependency | GitHub version display relies on an external API (rate-limited without tokens). Private repos require tokens. | Cache responses (cache_ttl config) and provide fallback UI for API failures. Document token generation for private repos. |
| Performance Impact | Load time measurement adds minimal overhead (~1ms per page), but GitHub API calls (if enabled) may introduce latency. | Disable GitHub features in production if not critical. Use edge caching for API responses. |
| Blade Template Risks | Custom views may introduce XSS risks if user-provided content (e.g., withSentence) isn’t sanitized. |
Audit the plugin’s Blade templates for proper escaping. Use HtmlString for trusted HTML input only. |
hiddenFromPages) in the long term?guzzlehttp/guzzle for API calls, included via Filament).| Step | Action | Tools/Commands |
|---|---|---|
| 1 | Assess Compatibility | Check composer.json for Filament version. Run composer why filament/filament. |
| 2 | Install Plugin | composer require devonab/filament-easy-footer:^2.0. |
| 3 | Publish Config | php artisan vendor:publish --tag="filament-easy-footer-config". |
| 4 | Register Plugin | Add EasyFooterPlugin::make()->configure() to App\Providers\Filament\PanelProvider. |
| 5 | Set Up Theme | Create a custom Filament theme and add @source for plugin views. |
| 6 | Configure Features | Use fluent methods (e.g., ->withLogo()->withLinks()) in PanelProvider. |
| 7 | Test Edge Cases | Verify GitHub API (if enabled), load time, and hidden pages functionality. |
| Component | Compatibility Notes |
|---|---|
| Filament v5.x | Fully supported (tested by maintainer). |
| Filament v4.x | Fully supported. |
| Filament v3.x | Supported via v1.x branch (legacy). |
| Tailwind CSS | Required for default styling. Custom CSS can override via theme. |
| Blade | Uses Filament’s Blade render hooks. No conflicts expected. |
| GitHub API | Optional. Private repos require a token. Public repos work without tokens but may hit rate limits. |
| Localization | Not natively supported. Teams must override views or use withSentence() with translated strings. |
| Task | Frequency | Owner | Notes |
|---|---|---|---|
| Plugin Updates | Quarterly | DevOps/TPM | Monitor Filament compatibility. Update via composer update. |
| Config Updates | As Needed | Product/Design | Modify filament-easy-footer.php for branding/feature changes (e.g., new links, logo). |
| Theme Updates | As Needed | Frontend Team | Rebuild Tailwind CSS if plugin styles break due to theme changes. |
| GitHub Token | Annually | Security Team | Rotate tokens if used for private repos. |
| View Overrides | Rarely | Frontend Team | Only needed for major customizations (e.g., localization). |
PanelProvider registration and render hook conflicts.@source directive.cache_ttl settings.How can I help you explore Laravel packages today?