Implements Jetstream-style authentication, profile, and team interfaces through a Filament panel
filament-team-guard — Laravel Starter Template
By MominAlZaraa
A Laravel starter kit built on Filament that, following the no-longer-maintained Jetstream, provides modules for authentication, profile, 2FA, passkeys, teams, and API tokens.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Supports TOTP two-factor authentication, recovery codes, and Spatie Laravel Passkeys passkeys
Optional Cloudflare Turnstile human verification covering login, registration, and 2FA challenges
Team module includes creation, email invitations, roles, and member add/edit/remove
Action classes, email templates, and language files can all be published and customized via vendor:publish
Optional Sanctum-style API tokens with configurable permissions and menu items
Template Details
Filament Team Guard is a Laravel starter kit distributed as a Composer package that uses a Filament panel to host the user and team features originally provided by Laravel Jetstream. It is installed via `composer require mominalzaraa/filament-team-guard`, then `php artisan filament-team-guard:install` is run, with optional `--teams` and `--api` switches determining whether the team and API token modules are included. Features cover login, registration, password reset, email verification, profile (avatar, information, password, sessions, account deletion), TOTP two-factor authentication with recovery codes, Spatie Laravel Passkeys passkeys, Cloudflare Turnstile human verification, and team creation, invitations, roles, and member management.
Compared with stephenjude/filament-jetstream, it makes the Action classes publishable and contract-based, including UpdateUserProfileInformation, InviteTeamMember, AddTeamMember, RemoveTeamMember, UpdateTeamMemberRole, CreateTeam, UpdateTeamName, DeleteTeam, ValidateTeamDeletion, and DeleteUser; email invitations distinguish between registered and unregistered flows, guiding unregistered users to create an account rather than registering automatically. Profile fields can be extended by publishing the Actions and overriding getFieldComponents(), getSectionHeading(), and getSectionDescription(), together with translation keys in lang/{locale}/filament-team-guard.php.
In terms of limitations, the README states support for PHP 8.3–8.5, Laravel 12, Filament 5, Livewire 4, and Tailwind 4; PHP below 8.3, Filament v4, and Laravel below 12 are deprecated. Existing Laravel projects need to publish migrations as documented and have the User model implement the corresponding interfaces. The code is MIT-licensed, but third-party assets such as demo images, fonts, and icons require separate license checks, and external services such as domains, hosting, databases, and payments may incur additional charges.
Is it right for your project?
Use Cases
- A new Laravel project needs an admin starting point with team and role management
- Adding Filament profile and two-factor authentication pages to an existing Laravel application
- Projects that need publishable Action classes to override profile fields or team invitation logic
- Filament panels that want to replace or supplement password login with passkeys
Suitable For
- Developers using Laravel 12 and Filament 5
- Admin projects that need team invitations and member role management
- Teams that want to follow the Jetstream pattern but switch to a Filament UI
- Projects that need multilingual language files and publishable email templates
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Install via composer require mominalzaraa/filament-team-guard, then run php artisan filament-team-guard:install, optionally adding --teams or --api
- 2
To enable Turnstile, configure TURNSTILE_* in .env and run php artisan turnstile:install
- 3
Customize Actions, language files, and email templates using the vendor:publish tags filament-team-guard-actions, -lang, and -email-templates respectively
- 4
Integrating into an existing project requires publishing migrations and having the User model implement the corresponding interfaces such as HasAvatar, HasPasskeys, HasTenants, and HasApiTokens
- 5
The README states support for PHP 8.3–8.5, Laravel 12, Filament 5, Livewire 4, and Tailwind 4; lower versions are deprecated
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version in the public repository under the MIT license; the free scope is the code of that version and does not imply that external services or third-party assets are free.
Must comply with when using
- The code of this version may be used, modified, used commercially, and distributed free of charge.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Use requires PHP 8.3–8.5, Laravel 12, Filament 5, Livewire 4, and Tailwind 4; PHP below 8.3, Filament v4, and Laravel below 12 are deprecated.
- Enabling Cloudflare Turnstile human verification requires configuring TURNSTILE_* in .env and running php artisan turnstile:install, and depends on an external service.
- Passkey functionality depends on the third-party package Spatie Laravel Passkeys and must be installed and configured according to its requirements.
- Integrating into an existing Laravel project requires publishing migrations and having the User model implement interfaces such as HasAvatar and HasPasskeys; it is not plug-and-play.
- The team module in an existing project requires publishing team migrations and having the User implement the HasTenants interface.
- The API token module requires publishing team migrations and having the User implement the HasApiTokens interface.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
**Requirements**: PHP ^8.3 | ^8.4 | ^8.5 · Laravel ^12.0 · Filament ^5.0 (Livewire ^4.0, Tailwind ^4.0)
Original README
**Cloudflare Turnstile** — Optional `->turnstile()` on auth + 2FA challenge/recovery.
Original README
- **2FA & passkeys** — Embedded TOTP, recovery codes, [Spatie Laravel Passkeys](https://github.com/spatie/laravel-passkeys).
Original README
- **Profile**: `php artisan vendor:publish --tag=filament-team-guard-migrations --tag=passkeys-migrations` → add `InteractsWithProfile`, `HasProfilePhoto`, implement `HasAvatar` & `HasPasskeys` on User
Original README
- **Teams**: `php artisan vendor:publish --tag=filament-team-guard-team-migration` → add `InteractsWithTeams`, implement `HasTenants` on User.
Original README
https://github.com/MominAlZaraa/filament-team-guard/blob/main/LICENSE.mdhttps://github.com/MominAlZaraa/filament-team-guard/blob/main/README.md- **API**: Same team migration tag → add `HasApiTokens` on User.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 71 / 100
- Technologies
- Laravel
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-08-13
- Screenshot last checked
- 2026-10-03
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-04
Inspect the recorded source material
SHA-256: c17819b9a842a92eff4804c958a1d20682bcad86d278fa182e27212a97534530
2026-10-03T19:27:03.283Z
Source file / repository# Filament Team Guard — Enhanced Laravel Starter Kit Built With Filament
[](https://packagist.org/packages/mominalzaraa/filament-team-guard)
[](https://packagist.org/packages/mominalzaraa/filament-team-guard)
[](https://github.com/MominAlZaraa/filament-team-guard/actions/workflows/run-tests.yml)
[](https://github.com/MominAlZaraa/filament-team-guard/actions/workflows/code-style.yml)
[](https://github.com/MominAlZaraa/filament-team-guard/blob/main/LICENSE.md)
[](https://packagist.org/packages/mominalzaraa/filament-team-guard)
[](https://github.com/sponsors/MominAlZaraa)
[](https://plumbphp.dev/mominalzaraa/filament-team-guard)
[](https://plumbphp.dev/mominalzaraa/filament-team-guard)

**Requirements**: PHP ^8.3 | ^8.4 | ^8.5 · Laravel ^12.0 · Filament ^5.0 (Livewire ^4.0, Tailwind ^4.0)
Enhanced Laravel starter kit built with Filament, inspired by [Laravel Jetstream](https://github.com/laravel/jetstream) (discontinued). Brings **team features, mature data handling, and Filament UI**—auth, registration, 2FA, passkeys, session management, API tokens, teams. Skip boilerplate, start building.
**Supported**: PHP ^8.3–^8.5, Filament ^5.0, Laravel ^12.0, Livewire ^4.0, Tailwind ^4.0 · **Deprecated**: PHP <8.3, Filament v4 (use [v1.x](https://github.com/MominAlZaraa/filament-team-guard/releases)), Laravel <12.
---
## Installation
```bash
composer require mominalzaraa/filament-team-guard
php artisan filament-team-guard:install --teams --api
```
Omit `--teams` / `--api` if not needed. Action classes and email templates are published for customization.
---
## Features
- **Auth** — Login, register, password reset, email verification
- **Profile** — Photo, info, password, sessions, delete account
- **2FA & passkeys** — Embedded TOTP, recovery codes, [Spatie Laravel Passkeys](https://github.com/spatie/laravel-passkeys). Enable via `->twoFactorAuthentication()`.
- **Cloudflare Turnstile** — Optional `->turnstile()` on auth + 2FA challenge/recovery. [njoguamos/laravel-turnstile](https://github.com/njoguamos/laravel-turnstile); set `TURNSTILE_*` in `.env`, run `php artisan turnstile:install`.
- **Teams** — Create, invite, roles, member management (add/remove/update role)
- **API tokens** — Optional Sanctum-style tokens
- **i18n** — Publishable locale-first language files
---
## Enhanced vs stephenjude/filament-jetstream
- **Publishable Action classes** (Jetstream pattern): `UpdateUserProfileInformation`, `InviteTeamMember`, `AddTeamMember`, `RemoveTeamMember`, `UpdateTeamMemberRole`, `CreateTeam`, `UpdateTeamName`, `DeleteTeam`, `ValidateTeamDeletion`, `DeleteUser` — all with contracts.
- **Email invitations** — Registered/unregistered flow; “Create Account” when needed; session-based redirects; no auto-registration.
- **Profile fields** — Override `getFieldComponents()`, `getSectionHeading()`, `getSectionDescription()` in published Action; add translations in `lang/{locale}/filament-team-guard.php`.
- **Team management** — Custom `Role` rule, `UpdateTeamMemberRole`, `RemoveTeamMember`, `ValidateTeamDeletion`.
- **Publishable** — Actions, emails, lang; locale-first translations with merge/override.
---
## Customization
| What | Command |
|------|--------|
| Action classes | `php artisan vendor:publish --tag=filament-team-guard-actions` |
| Language files | `php artisan vendor:publish --tag=filament-team-guard-lang` |
| Email templates | `php artisan vendor:publish --tag=filament-team-guard-email-templates` |
**Profile field example**: Publish actions + lang → add key in `lang/en/filament-team-guard.php` → in `UpdateUserProfileInformation` override `getFieldComponents()` and add a `TextInput::make('surname')` (and translation) → add `surname` to User `$fillable`.
---
## Configuration (snippets)
**Profile (2FA, passkeys, photo, etc.)**
```php
JetstreamPlugin::make()
->configureUserModel(userModel: User::class)
->profilePhoto(condition: fn() => true, disk: 'public')
->deleteAccount(condition: fn() => true)
->updatePassword(condition: fn() => true, Password::default())
->profileInformation(condition: fn() => true)
->logoutBrowserSessions(condition: fn() => true)
->twoFactorAuthentication(
condition: fn() => auth()->check(),
forced: fn() => app()->isProduction(),
enablePasskey: fn() => Feature::active('passkey'),
requiresPassword: fn() => app()->isProduction(),
);
```
**Teams**
```php
JetstreamPlugin::make()
->teams(condition: fn() => Feature::active('teams'), acceptTeamInvitation: fn($id) => JetstreamPlugin::make()->defaultAcceptTeamInvitation())
->configureTeamModels(teamModel: Team::class, roleModel: Role::class, membershipModel: Membership::class, teamInvitationModel: TeamInvitation::class);
```
**API tokens**
```php
JetstreamPlugin::make()->apiTokens(condition: fn() => Feature::active('api'), permissions: fn() => ['create','read','update','delete'], menuItemLabel: fn() => 'API Tokens', menuItemIcon: fn() => 'heroicon-o-key');
```
---
## Existing Laravel projects
- **Profile**: `php artisan vendor:publish --tag=filament-team-guard-migrations --tag=passkeys-migrations` → add `InteractsWithProfile`, `HasProfilePhoto`, implement `HasAvatar` & `HasPasskeys` on User; hide 2FA fields; append `profile_photo_url`.
- **Teams**: `php artisan vendor:publish --tag=filament-team-guard-team-migration` → add `InteractsWithTeams`, implement `HasTenants` on User.
- **API**: Same team migration tag → add `HasApiTokens` on User.
---
## Package development
Run `composer install` in the package root for tests. `vendor/` is in `.gitignore` and not distributed; `composer require mominalzaraa/filament-team-guard` in an app only pulls package source—the app’s Composer resolves Filament once (no duplication). `.gitattributes` has `/vendor export-ignore`.
---
## Testing · Changelog · Contributing
- **Tests**: `composer test`
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
- **Contributing**: [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md)
## Credits
- [Laravel Jetstream](https://github.com/laravel/jetstream) (discontinued) — team features & Action pattern
- [stephenjude/filament-jetstream](https://github.com/stephenjude/filament-jetstream) — Filament port
- [Momin Al Zaraa](https://github.com/MominAlZaraa) — this enhanced version · [Issues](https://github.com/MominAlZaraa/filament-team-guard/issues) · [email protected]
**License**: MIT. See [LICENSE.md](LICENSE.md).
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS

php-saas
php-saas is a Laravel-based SaaS starter positioned as an everything-included kit. It generates new projects via a global Composer command and includes authentication with two-factor, API tokens, Stripe and Paddle billing, and project, team, and organization management.
Laravel · SaaS

filament-jetstream
A Laravel starter kit that implements Jetstream-like authentication and account features using Filament's native panels and components. It includes login, registration, two-factor authentication, session management, user profiles, and optional teams and API tokens.
Laravel · Starter
