What is Jetstream?
Jetstream is Laravel's official application starter kit. Instead of starting with a blank Laravel installation, Jetstream provides a complete, production-ready starting point including the entire user authentication flow, profile management, and optional team management features. It uses Tailwind CSS for styling and your choice of Livewire or Inertia.js for the frontend.
What's Included Out of the Box
Installation & Setup
Jetstream is installed via Composer into a fresh Laravel application. You'll choose your preferred frontend stack (Livewire or Inertia) and whether you need team features during installation.
Step 1: Create a fresh Laravel project
composer create-project laravel/laravel jetstream-app
cd jetstream-appStep 2: Install Jetstream
composer require laravel/jetstreamStep 3: Install with Livewire (recommended for beginners)
php artisan jetstream:install livewire
# Add --teams to enable team management
php artisan jetstream:install livewire --teamsStep 4: Install with Inertia.js (Vue or React)
php artisan jetstream:install inertia
# For React instead of Vue:
php artisan jetstream:install inertia --reactStep 5: Finalize installation
npm install && npm run build
php artisan migrateVisit http://your-app.test and you'll see a fully styled login/register page ready to use.
Choosing Livewire vs Inertia
| Feature | Livewire | Inertia.js |
|---|---|---|
| Language | PHP + Blade | Vue / React + API |
| Learning Curve | Low (stays in Laravel) | Medium (JS framework needed) |
| SPA Feel | Partial (Turbo-like) | โ Full SPA |
| SEO | โ Server-rendered | Requires SSR setup |
Authentication & 2FA
Jetstream scaffolds all authentication views and logic. Two-factor authentication can be enabled per user from the profile page. The UI and controllers are fully customizable.
Welcome back
Sign in to your account
Team Management
When installed with --teams, Jetstream adds multi-tenancy support. Every user belongs to a personal team and can create additional teams. Team members have roles (admin, editor) and permissions.
// Get current user's teams
$teams = auth()->user()->allTeams();
// Check team role
if (auth()->user()->hasTeamRole($team, 'admin')) {
// User is admin of this team
}Profile Management
Jetstream includes profile photo upload, password updates, browser session management, and account deletion โ all pre-built and ready to use.
Profile photos are stored using Laravel's filesystem. Configure FILESYSTEM_DISK in your .env to use S3 or another driver.
API & Sanctum Integration
Jetstream uses Laravel Sanctum to provide first-party API token management. Users can generate personal access tokens directly from the UI.
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});Customizing Jetstream Views
You can publish Jetstream's components to your own application to modify them. This is essential for branding or changing behavior.
# Publish Livewire components
php artisan vendor:publish --tag=jetstream-views
# Publish Inertia components
php artisan vendor:publish --tag=jetstream-inertiaDark Mode
Jetstream supports Tailwind's dark mode out of the box. Users can toggle between light and dark mode from their profile settings or the navigation bar.
Content adapts automatically.
Best Practices & Architecture
Publish early
Publish views and configs before editing to avoid upgrade conflicts.
Leverage Teams
Use team roles and permissions instead of building custom RBAC from scratch.
Enable 2FA
Two-factor authentication is built-in โ activate it for all admin users.
Test your customizations
Jetstream includes feature tests; extend them when you modify actions.
๐ Official Resources
Laravel Jetstream Documentation โ The official guide with installation steps and customization tutorials.