Jetstream
A Laravel Starter Kit Built With Filament.
Author:
Stephen Jude
Documentation
- Installation
- Features
- Usage & Configurations
- Existing Laravel projects
- Testing
- Changelog
- Contributing
- Security Vulnerabilities
- Credits
- License

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.
#Installation
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.
#Features
#🔐 Authentication

#👤 User Profile

#👥 Team (Optional)

#🔑 API Tokens (Optional)

#🌍 Translation-ready
#Usage & Configurations
#Configuring the User Profile
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(),
)
#Configuring Team features
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
)
#Configuring API features
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',
),
#Existing Laravel projects
#Installing the Profile feature
#Publish profile migrations
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
#Add profile feature traits to the User model
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',
];
}
#Installing the Team Features
#Publish team migration
Run the following command to publish the team migrations.
php artisan vendor:publish --tag=filament-jetstream-team-migration
#Add team feature traits to User model
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;
}
#Installing the API Features
#Publish team migration
Run the following command to publish the team migrations.
php artisan vendor:publish --tag=filament-jetstream-team-migration
#Add api feature trait to User model
Update App\Models\User model to use Laravel\Sanctum\HasApiTokens trait.
...
use \Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens;
}
#Testing
composer test
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#Contributing
Please see CONTRIBUTING for details.
#Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
#Credits
#License
The MIT License (MIT). Please see License File for more information.
The author
From the same author
Feature Flags
Filament implementation of feature flags and segmentation with Laravel Pennant.
Author:
Stephen Jude
Blog
A faceless blog content manager with configurable richtext and markdown support.
Author:
Stephen Jude
Debugger
Easily add Laravel Telescope and Laravel Horizon to admin panel.
Author:
Stephen Jude
Two Factor Authentication (2FA)
Add two factor authentication to new and existing Filament applications.
Author:
Stephen Jude
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese