tapp/filament-invite
A Filament plugin that adds invitation-based user registration to your admin panel: generate and email invite links, track pending and accepted invitations, and let invited users register securely. Manage invitations through Filament resources with Laravel notification support.
Architecture fit. tapp/filament-invite is a thin Filament panel plugin: it registers a service provider, adds an "invite" table/header action to a User resource, mails a signed registration URL, and records acceptance against the invited user. That maps cleanly onto the standard Laravel + Filament back-office pattern where an admin provisions accounts. It is a vertical slice, not a platform: it does not own identity, does not replace Fortify/Breeze/Jetstream registration routes, and does not provide SSO, SCIM, or directory sync. Fit is therefore high for internal admin panels and low for customer-facing self-serve onboarding, where you would want a dedicated invitation service or an existing IdP.
Integration feasibility. Expected footprint is small and conventional: composer require, publish config and migrations (new columns on users, or a separate invitations table — verify which), add a trait/interface to the User model, and wire the action into your resource. A competent Laravel developer should reach a working demo in under a day. The real work is environmental, not code: transactional mail configuration, SPF/DKIM/DMARC, queue workers, and the authorization rules that decide who may invite whom.
Technical risk.
users table. Migrations you publish become yours forever; a future package upgrade may conflict with local edits.Key questions for the maintainer / spike.
spatie/laravel-permission for role assignment at invite time, or is that manual?Stack fit. Assumes PHP 8.1+, Laravel 10–12, Filament v3+, Livewire, and a Blade mail template. It slots into the TALL stack without introducing a new runtime, queue driver, or external SaaS dependency — a meaningful advantage over hosted invitation products for teams that want to keep identity data in-house.
Migration path. Greenfield is trivial. For an existing application:
status/deactivated_at fields diverge.Compatibility checks. Pin the package and Filament to tested constraints in composer.json; run a composer why-not against your current Filament and Livewire versions before committing. Verify PHP and Laravel support in CI, not just locally.
Sequencing. (a) Timeboxed spike in a throwaway branch — install, invite, accept, revoke, re-invite. (b) Security review of token lifecycle and the acceptance endpoint. (c) Mail infrastructure and deliverability validation in staging with real inboxes. (d) Authorization model: which roles see the invite action, per panel/tenant. (e) Feature-flag rollout to one panel, one tenant, or one internal team. (f) Document a fork-and-own contingency before merge, not after.
Maintenance. MIT license gives you the legal right to fork, which is the real mitigation. Assume the package may go unmaintained: keep the diff small, avoid editing published migrations or vendor templates beyond what is strictly necessary, and record which files are package-owned versus application-owned. Budget a small annual task for Filament upgrade compatibility.
Support. No SLA, no commercial backing, community issues only. Assign an internal owner. Because the package is small, the fallback — reimplementing invite-and-accept with Laravel's signed URLs — is on the order of a few days of work, which caps the downside. Treat the package as an accelerator, not a dependency you cannot remove.
Scaling. Invitation volume is inherently low (tens to low thousands per month for most admin panels), so database and app load are non-issues. The scaling concerns are operational: queue the mail so panel requests do not block on SMTP, throttle sends per actor to prevent an admin account from being used as a spam relay, index the email and token columns, and periodically expire or purge stale invitations. In multi-tenant deployments, confirm the action is scoped so one tenant's admin cannot enumerate or invite into another tenant.
Failure modes.
Ramp-up. Low for anyone fluent in Laravel and Filament: half a day to a day to integrate and demo. Add one to two days for the security and mail-deliverability review that a TPM should insist on regardless of package size. Net: a cheap, reversible win for internal admin provisioning — contingent on the spike confirming token lifecycle behavior and on an explicit decision to fork if the vendor goes quiet.
How can I help you explore Laravel packages today?