monzer/filament-email-verification-alert
Filament plugin that displays an alert prompting authenticated users to verify their email address, with a resend verification option and configurable messaging to help ensure accounts are confirmed.
Architecture fit. The package is a Filament panel plugin that surfaces an in-panel alert prompting unverified users to confirm their email address, with the ability to dispatch verification emails on demand. Architecturally it is an additive, low-coupling plugin: it hooks into Filament's panel registration lifecycle and leans on Laravel's native MustVerifyEmail contract and EmailVerificationRequest flow rather than introducing its own auth model. For any application already running Filament with Laravel's built-in email verification, the conceptual fit is clean — it fills a genuine UX gap (Filament's default auth screens do not nudge unverified users) without requiring schema changes or a parallel notification system.
Integration feasibility. Integration is a standard Composer install plus plugin registration in the relevant PanelProvider. There is no evidence of migrations, custom tables, or queue infrastructure requirements, which keeps the blast radius small and makes it viable as a contained spike. The main feasibility gate is version alignment: the package must match the host's Filament major version, Laravel version, and PHP constraint. Given zero dependents and modest adoption, we should treat the compatibility claim as unverified until we run it against our exact stack.
Technical risk. The dominant risk is not technical complexity but supply-chain maturity. Seven stars, zero dependents, a single maintainer, and a low composite score signal an early-stage, low-traffic project. Specific concerns: unknown test coverage and CI, uncertain support for future Filament majors (Filament has historically shipped breaking changes between majors), no visible release cadence, and the possibility of abandonment. The plugin's scope is small enough that a fork or in-house reimplementation is a realistic fallback, which materially de-risks adoption. Secondary risks are behavioral: resend throttling, localization, and interaction with any bespoke verification flow we already own.
Key questions.
VerificationNotification (and can it be queued), or does it send synchronously?EnsureEmailIsVerified middleware?Stack fit. Target a Laravel 10/11 application on PHP 8.1+ running Filament 3 with MustVerifyEmail already implemented on the user model. If we are not already using Laravel's signed verification routes, that prerequisite must land first — the plugin is a UX layer on top of that flow, not a replacement.
Migration path. Treat the package as an external dependency to be evaluated, then either (a) consume it pinned to an exact version, or (b) vendor/fork it into the repo if the spike validates the UX but the maintenance signals look weak. Because the surface area is one plugin class and a Blade view, forking is cheap and removes the abandonment risk entirely. Recommended path: pin for the spike, fork before production if any of the key questions come back unanswered.
Compatibility. Verify the Composer constraints against our lockfile before writing code. Run the spike on the same Filament major we ship. Confirm the panel registration API matches our Filament version (plugin registration signatures have changed across Filament majors), and test that the alert renders correctly in our theme and does not collide with existing panel render hooks or custom header widgets.
Sequencing.
Maintenance. This is the primary operational concern. A single-maintainer, low-adoption package means we should assume we own upkeep in practice. Budget a small recurring allowance for version bumps and Filament upgrade cycles, and prefer the fork so we are not blocked by upstream latency. The code footprint is small enough that maintenance cost is bounded.
Support. There is no meaningful community or vendor support channel. Expect self-support: read the source, patch locally. This is acceptable only because the fork fallback is trivial; it would not be acceptable for a package with deep integration.
Scaling. Runtime overhead is negligible — a conditional render in the panel and an on-demand notification send. The only scaling consideration is email delivery: confirm verification emails are queued so a burst of unverified users hitting "resend" does not block request workers or trip provider rate limits. This is a configuration concern we control, not a package limitation.
Failure modes.
Ramp-up. Very low. Any developer familiar with Filament can integrate and reason about this in under a day; the spike doubles as the ramp-up. Document the fork location, the pinned version rationale, and the queue requirement so future maintainers understand why the dependency exists and how to replace it.
TPM recommendation. Proceed with a time-boxed spike, but plan for a fork or a ~1-day in-house reimplementation as the likely production path. The package solves a real UX gap with minimal architectural cost; the risk is entirely in dependency maturity, and that risk is cheap to eliminate given the small scope.
How can I help you explore Laravel packages today?