Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Expiration Notice Laravel Package

marcelweidum/filament-expiration-notice

Filament plugin that adds configurable expiration notices to your Laravel admin panels, alerting admins before records expire or after they lapse. Display expiry-aware banners and badges on resources and tables with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a narrowly scoped presentation-layer shim. It intercepts the default Livewire "Page expired" dialog — the 419/session-timeout modal that Livewire ships as a plain, unstyled Blade partial — and replaces it with a Filament-styled modal so the recovery prompt matches the rest of the admin panel. It touches no models, migrations, routes, or persistence. Architecturally it sits entirely in the Filament panel bootstrapping layer plus a published view/asset, which means it composes cleanly with existing panel providers and imposes no opinions on application structure. Fit is strongest for teams already standardized on Filament for back-office surfaces and weakest for anyone who has deliberately replaced Livewire's page-expired behavior with a custom redirect or toast.

Integration feasibility. Expected path is a single Composer require followed by registering the package as a Filament plugin on the relevant panel(s), or relying on Laravel package auto-discovery for a global effect. Because the surface area is one view override, the integration is reversible in one line and does not require a deploy-window migration. The main feasibility gate is version compatibility: Filament plugin contracts and the Livewire page-expired hook have both shifted across v2→v3→v4, so the real work is confirming the package's supported Filament/Livewire matrix against our current pinned versions.

Technical risk. Low overall, with two specific exposures. First, implementation coupling: replacing a framework's default error UI means depending on an internal Livewire behavior (page-expired event/partial) that is not part of a formal public API; a Livewire minor release can change the mount point and silently revert us to the stock dialog. Second, symptom masking: an expiration modal appearing often is a signal of session misconfiguration (per-node file sessions behind a load balancer, short SESSION_LIFETIME, aggressive CSRF token rotation), not a styling problem. Styling it beautifully makes a real reliability defect more tolerable and therefore easier to ignore. We should treat adoption as contingent on a separate root-cause review of session storage.

Key questions.

  • Which Filament major versions are supported, and is the package a panel plugin or a global service provider — or both?
  • Does it support Filament SPA mode and multi-panel installs (per-panel opt-in), or is it all-or-nothing?
  • Is the recovery action configurable (full reload vs. redirect to login vs. preserve form state)?
  • Does it handle only 419, or also 401/419-adjacent auth expiry and Livewire's offline state?
  • What is the maintenance posture — single maintainer, release cadence, open-issue response? The listed last-release date is in the future relative to typical review windows and should be verified against the actual tag list before we treat the project as actively maintained.
  • Is there a graceful fallback if the Blade view fails to resolve, or does the panel error?

Integration Approach

Stack fit. Requires Laravel + Livewire + Filament. It is a no-op for non-Filament applications and for API-only services. Best fit is our internal admin/ops panels where operators sit on long-lived forms (bulk editors, import wizards, settings screens) and are the most likely to hit session expiry mid-edit.

Migration path. Add the Composer dependency, register the plugin on one panel provider, publish assets/config only if defaults need overriding, then verify against a deliberately shortened SESSION_LIFETIME in a staging environment. No data migration, no backfill, no dual-write period. Rollback is removing the plugin registration or the dependency.

Compatibility. Pin the package version against our exact Filament and Livewire versions and record that triplet in the dependency decision log. Because the package overrides framework-owned UI, treat Filament/Livewire upgrades as requiring a smoke test of the expiration flow — this is a new step in an existing upgrade checklist, not a new process.

Sequencing.

  1. Confirm version matrix and maintenance posture; reject if it lags our Filament major.
  2. Land session-storage root-cause review in parallel (shared session driver, lifetime, cookie/CSRF settings) — do not let the cosmetic fix close that ticket.
  3. Pilot on a single low-traffic panel; force expiry and observe the modal in both SPA and non-SPA modes.
  4. Extend to remaining panels via shared panel-provider base class.
  5. Add the expiry smoke test to the quarterly upgrade runbook.

Operational Impact

Maintenance. Effectively zero ongoing operational load — no jobs, no queues, no schema, no external services. The carrying cost is dependency hygiene: one more package to re-validate on every Filament major, plus a view override that competes with framework defaults. Given the small footprint, the honest calculus is "cheap to keep, cheap to remove," which argues for adoption but not for deep investment.

Support. Support burden is ours, not the vendor's. A 95-star, single-maintainer package is a bus-factor-of-one dependency; we should not expect timely upstream fixes for a Filament breaking change. Mitigation is trivial: fork-and-pin the Blade view if upstream goes dormant, since the entire change surface is a template. Avoid routing critical-path behavior through it.

Scaling. No scaling implications. The override renders client-side on an already-failing request; it adds no per-request server work and no query load. Under load-balanced multi-node deployments, however, the frequency of the modal is a function of session topology, not of this package — expect higher incidence wherever sessions are node-local.

Failure modes. All degradations are cosmetic rather than data-affecting. Most likely: a Filament or Livewire upgrade changes the hook and the package silently stops applying, reverting to the stock dialog (silent, low-severity, discovered only by inspection). Next: the published view conflicts with a custom theme and throws a Blade resolution error inside an already-erroring request path, producing a confusing double failure — worth testing explicitly. Least likely but highest blast radius if the package ever ships a service provider that publishes over application config. There is no path to data loss or corruption.

Ramp-up. Near-zero for engineers already fluent in Filament panel configuration — under an hour including staging verification. The larger time investment is the session-configuration audit that should accompany adoption, which is application work rather than package work. Net recommendation: adopt as a low-cost UX polish item, explicitly scoped as cosmetic, and keep the underlying session-expiry reliability issue open and separately owned.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings