Product Decisions This Supports
- Feature scoping: offline resilience for admin panels. This package adds a themed "you're offline" fallback surface for Filament panels. It supports the decision of whether admin/back-office experiences need graceful degradation for field staff, mobile admin users, or regions with unreliable connectivity — a small, contained answer rather than a full PWA/offline-sync initiative.
- Build vs. buy on theming plumbing. The v0.1.2 release is almost entirely about theme derivation: the offline page now reads the panel's registered
gray palette, primary 600/500 for the retry button (matching Filament's solid buttons), the panel font family, and the panel's dark-mode configuration (darkMode(forced), in-app localStorage.theme mirroring Filament's own bootstrap, OS fallback). That is the actual value: it eliminates per-panel bespoke CSS. If you run multiple branded panels, buying this is cheaper than maintaining a custom offline Blade view that drifts from Filament's design tokens.
- White-label / multi-tenant roadmap. Any roadmap item that adds client-branded or tenant-specific panels increases the cost of hardcoded styling. A theme-inheriting offline page means new panels inherit correct offline branding for free — a point in favor of shipping more panels.
- UX polish prioritization. The removal of "hardcoded zinc styles" fixes a real defect class: light-mode-styled offline pages flashing on dark-mode panels, and incorrect behavior on forced-dark panels. This supports treating design-token parity as a launch criterion for any user-facing fallback surface, not a nice-to-have.
- Scope boundary decision. Note what this is not: a fallback page, not an offline data layer. It does not support decisions about offline mutations, queue-and-sync, or cached admin data. Keep those on a separate track so this package isn't oversold internally.
When to Consider This Package
Adopt (or pilot) when:
- You are on Filament and want an offline fallback page without writing and maintaining a custom Blade view + service worker registration.
- You run multiple panels with distinct themes, fonts, or dark-mode settings — the theme-derivation logic is where the payoff concentrates.
- You have forced dark mode or custom
gray palettes; pre-0.1.2 hardcoded styles would visibly break these, so this release is the first version worth evaluating for themed panels.
- The requirement is genuinely a fallback surface, not offline capability. If a styled "you're offline, retry" screen satisfies the user need, this is proportionate.
Look elsewhere or defer when:
- You don't use Filament, or you're on a Filament major version not yet validated against this package — verify compatibility explicitly rather than assuming.
- You need real offline functionality (cached reads, queued writes, sync conflict handling). This package does not provide it.
- You already have a PWA/service-worker setup. Two service workers or overlapping cache/fallback registrations is a common integration hazard; confirm ownership of the SW lifecycle before adding this.
- Maturity risk is unacceptable. v0.1.2 is pre-1.0: no stability guarantee, small changelog surface, and no evidence here about test coverage, maintenance cadence, or security posture. Pin the exact version; assume breaking changes.
- You require offline UX beyond theme inheritance (custom copy, support links, status diagnostics) — you may end up forking, in which case the theme-parity logic is small enough to vendor.
- Strict CSP or asset-pipeline constraints make an injected offline page awkward to audit.
How to Pitch It (Stakeholders)
To executives: A small, low-risk polish item. It gives our Filament admin panels a proper "you're offline" screen that automatically matches each client's branding — colors, font, light/dark behavior — with no design work per panel. The v0.1.2 release is the one that makes this credible for our themed and forced-dark panels, since it stops shipping hardcoded styles. Cost is a dependency, not a project.
To engineering: A Filament plugin providing a theme-aware offline fallback page. v0.1.2 derives background, surface, text, and ring colors from the panel's registered gray palette, uses primary 600/500 for the retry button to match Filament's solid button styling, applies the panel font family, and respects dark-mode configuration: disabled panels stay light, darkMode(forced) stays dark, otherwise it reads localStorage.theme exactly as Filament's bootstrap does and falls back to OS preference. Low integration surface, but it's 0.1.x — pin the version, expect churn, and check for service-worker conflicts with any existing PWA work. The theme-derivation logic is small enough to vendor if we need to own it.