bradyrenting/filament-passwordless
Passwordless authentication for Filament panels. Let users sign in with secure email magic links or one-time codes instead of passwords, reducing friction and login security risks. Laravel-native, easy to install, and designed to integrate with existing Filament auth flows.
Architecture fit. bradyrenting/filament-passwordless slots into a well-defined seam in the TALL stack: Filament exposes panel authentication through configurable guards and overridable auth pages, so a passwordless package can replace or augment the login page without forking the panel itself. That is architecturally cheap — it is an additive Composer dependency plus a plugin registration in the PanelProvider, not a re-platforming. Expect it to sit alongside, not replace, Laravel's session guard, which means the blast radius is limited to the authentication entry point rather than the whole authorization model.
Integration feasibility. Low-to-moderate effort for a team already on Filament. The realistic work is not "install the package" but "harden the surrounding flow": mail transport and deliverability, token lifetime and single-use semantics, rate limiting on the request-link endpoint, and a fallback path when mail is unavailable. Most of that is standard Laravel work (notifications, throttle middleware, signed URLs), so the integration is not exotic. The unknown is Filament major-version coupling — Filament's auth internals have moved between v3 and v4, and this package's supported matrix must be confirmed before we commit.
Technical risk. The dominant risk is not code quality, it is concentration. 26 stars, a single maintainer, and a security-sensitive surface (authentication) is a combination that requires us to treat the package as code we own. A defect here is an account-takeover defect, not a cosmetic bug. Specific concerns to validate in review:
A secondary risk is roadmap drift: a solo-maintained package tracking a fast-moving framework can go stale quietly, and auth is the worst place to discover unmaintained code.
Key questions.
web guard?Stack fit. Natural fit for a Laravel + Filament monolith. It requires no new runtime, no new datastore beyond what the package migrates, and no changes to the authorization layer (FilamentUser, policies, tenancy) — those continue to gate access after authentication succeeds. Teams already sending transactional mail (SES, Postmark, Resend) have the only hard external dependency already satisfied.
Migration path. Do not cut over in one step. Recommended sequence:
Compatibility and sequencing. Pin the package to an exact version and lock it in composer.json; do not float. Sequence the Filament upgrade and the passwordless adoption as separate changes — bundling a framework major upgrade with an auth change makes rollback ambiguous. If a Filament upgrade is already queued, land it first, then evaluate this package against the new major.
Contingency. Budget for the possibility of vendoring or forking. For an auth-path dependency at this maturity level, the realistic exit is "copy into app/ or a private fork and maintain it," not "swap to a competitor" — so confirm the license (MIT, per metadata) permits that and that the code is small enough to absorb. It almost certainly is.
Maintenance. Ongoing cost is low in volume but high in criticality: a small surface that must be reviewed every time Filament, Laravel, or PHP bumps a major. With a single maintainer upstream, assume a nonzero probability of adopting maintenance ourselves within 12–24 months. Treat the pinned version as an owned component with a named internal owner, and add it to the dependency-review checklist alongside framework upgrades.
Support. No commercial support, no SLA. Internal support burden falls on whoever owns the admin panel — realistically one or two engineers. Document the flow (where tokens live, how to invalidate them, how to force a password reset) so on-call can act without the original implementer.
Scaling. Authentication volume is trivial relative to typical Filament workloads; the package will not be a bottleneck. The scaling constraint is the mail provider: rate limits, sending quotas, and reputation management become production concerns. For large admin populations, plan for provider-side throttling and a queue for link delivery so a burst of login attempts does not stall synchronously.
Failure modes to plan for:
APP_URL and trusted-proxy configuration validated in staging.Ramp-up. Engineer ramp-up is small for anyone fluent in Filament — hours, not weeks — because the integration mirrors existing Laravel notification and middleware patterns. The real ramp-up is organizational: support staff and on-call need to understand a login flow that no longer starts with a password. Budget a short runbook and a note in the incident playbook, and make sure the help-desk script covers "I didn't get the email" as the new most common ticket.
How can I help you explore Laravel packages today?