Filament Jetstream, just like Laravel Jetstream is a beautifully designed application starter kit for Laravel and provides the perfect starting point for your next Laravel application.
Includes auth, registration, 2FA, session management, API tokens, and team support, all implemented with native Filament panels and components.
Skip boilerplate, start building features.
You can install the package via composer:
composer require stephenjude/filament-jetstream php artisan filament-jetstream:install --teams --api
You can remove the --teams
and --api
arguments if you don't want those features.
use \App\Models\User;use Filament\Jetstream\JetstreamPlugin;use Illuminate\Validation\Rules\Password; ...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(), )
use \Filament\Jetstream\Role;use Filament\Jetstream\JetstreamPlugin;use Illuminate\Validation\Rules\Password;use \Filament\Jetstream\Models\{Team,Membership,TeamInvitation}; ...JetstreamPlugin::make() ->teams( condition: fn() => Feature::active('teams'), acceptTeamInvitation: fn($invitationId) => JetstreamPlugin::make()->defaultAcceptTeamInvitation() ) ->configureTeamModels( teamModel: Team::class, roleModel: Role::class, membershipModel: Membership::class, teamInvitationModel: TeamInvitation::class )
use Filament\Jetstream\JetstreamPlugin;use Illuminate\Validation\Rules\Password;use \Filament\Jetstream\Role;use \Filament\Jetstream\Models\{Team, Membership, TeamInvitation}; JetstreamPlugin::make() ->apiTokens( condition: fn() => Feature::active('api'), permissions: fn() => ['create', 'read', 'update', 'delete'], menuItemLabel: fn() => 'API Tokens', menuItemIcon: fn() => 'heroicon-o-key', ),
Run the following command to publish the profile migrations.
php artisan vendor:publish \ --tag=filament-jetstream-migrations \ --tag=passkeys-migrations \ --tag=filament-two-factor-authentication-migrations
Update the App\Models\User
model:
...use Filament\Jetstream\HasProfilePhoto;use Filament\Models\Contracts\HasAvatar;use Spatie\LaravelPasskeys\Models\Concerns\HasPasskeys;use \Filament\Jetstream\InteractsWIthProfile; class User extends Authenticatable implements HasAvatar, HasPasskeys{ ... use InteractsWIthProfile; protected $hidden = [ ... 'two_factor_recovery_codes', 'two_factor_secret', ]; protected $appends = [ ... 'profile_photo_url', ];}
Run the following command to publish the team migrations.
php artisan vendor:publish --tag=filament-jetstream-team-migration
Update App\Models\User
model to implement 'Filament\Models\Contracts\HasTenants' and use Filament\Jetstream\InteractsWithTeams
trait.
...use Filament\Jetstream\InteractsWithTeams;use Filament\Models\Contracts\HasTenants; class User extends Authenticatable implements HasTenants{ ... use InteractsWithTeams;}
Run the following command to publish the team migrations.
php artisan vendor:publish --tag=filament-jetstream-team-migration
Update App\Models\User
model to use Laravel\Sanctum\HasApiTokens
trait.
...use \Laravel\Sanctum\HasApiTokens; class User extends Authenticatable{ use HasApiTokens;}
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.