muazzambuilds/filament-white-label
White-label your Filament admin panel with this Laravel package. Quickly customize the panel name, logo, favicon, colors, login page, and assets, hide Filament branding and references, and give clients a polished, fully branded backend experience without editing core files.
Architecture fit: This is a presentation-layer Filament v5 plugin for panel branding — brand, colors, fonts, layout, footer, and custom CSS. It fits a Laravel/Filament SaaS where admin panels need per-panel or per-tenant white-labeling without maintaining a custom theme fork. The per-tenant row option is the key architectural value, but it is not a security boundary and must be validated against the app’s tenancy model and cache scoping. It is a poor fit if the product is on Filament v3/v4, uses a heavily customized theme, or needs branding outside Filament panels.
Integration feasibility: Likely low-effort for a standard Filament v5 panel: Composer install, publish config/migrations, register the plugin in the PanelProvider, and optionally configure tenant resolution. Feasibility drops for custom themes, existing panel plugins that override assets, S3/private-disk logo storage, or nonstandard multi-tenant resolution. The package is new and unproven, so a spike is required before committing.
Technical risk: Medium. Signals: 13 stars, 0 dependents, a single v1.0.0 release, and a small maintainer footprint. Main risks are Filament v5 compatibility, CSS sanitization bypass, unsafe file upload handling, tenant data leakage through incorrect scoping, stale generated CSS/cache after settings changes, Bunny Fonts privacy/CDN dependency, and panel boot regressions. “Safety guards” are claimed but not independently evidenced.
Key questions:
url(), imports, and exfiltration vectors?Stack fit: Best fit is a Laravel app already on Filament v5 with standard panel providers and an existing tenant model. The plugin adds a settings surface and likely a database table; it should remain isolated to panel rendering. Confirm PHP/Laravel constraints before adoption, and confirm the storage disk strategy for logos/favicons.
Migration path: Treat this as a bounded pilot, not a platform dependency yet. In a branch: composer require the pinned version, publish config/migrations, run migrations in a staging database, register the plugin on one non-critical panel, seed default branding, then test tenant-specific overrides. If the pilot fails, fall back to an in-house panel settings model plus CSS variables — the scope is small enough to replace.
Compatibility: Pin the exact package version. Test against the app’s Filament version, existing panel plugins, custom theme, asset pipeline, config caching, queue workers, and tenancy middleware. Verify behavior with php artisan config:cache, production asset builds, and at least one non-default storage disk. Check that panel boot does not add measurable latency.
Sequencing:
Maintenance: Low code surface but high bus-factor risk. Budget for pinning versions, watching releases, and potentially vendoring/forking the package. Add internal tests for panel boot, tenant isolation, and CSS rendering. Do not rely on the package’s release cadence without a maintenance owner.
Support: Community-only support; no SLA. Create an internal runbook covering settings reset, cache clear, logo upload failure, and plugin disablement. Escalation likely means disabling the plugin and falling back to default Filament branding.
Scaling: The plugin is primarily read-time settings and asset serving, so compute impact should be small if settings are cached. Watch database lookups per panel request, cache key design under many tenants, asset storage/CDN behavior, and CSS generation if custom CSS is large. Bunny Fonts introduces an external dependency at render time.
Failure modes: Bad custom CSS can hide navigation or break the panel; missing/invalid logo assets can produce broken headers; incorrect tenant scoping can leak branding or settings across tenants; font CDN outage can degrade typography; migration or cache issues can cause stale branding; storage permission errors can break uploads. The claimed safety guards reduce but do not eliminate these risks.
Ramp-up: Low for a Filament-fluent developer — mostly panel provider registration and settings configuration. Medium for the team overall because tenant scoping, CSS sanitization, and asset security need review. Plan a short knowledge transfer and a documented rollback procedure before production use.
How can I help you explore Laravel packages today?