Laravel Authentication: Breeze, Jetstream, and Fortify

Summary: Set up user login, registration, and password reset with modern Laravel packages.


Authentication is at the heart of most web applications. Laravel, one of the most popular PHP frameworks, offers robust tools for building authentication systems. Its modularity allows you to choose packages that match your project complexity. In this post, we’ll explore three first-party Laravel packages: Breeze, Jetstream, and Fortify. We’ll compare their features and show how to quickly set up user login, registration, and password reset for your app.


Why Laravel Authentication Packages?

Out-of-the-box authentication saves time, enforces best practices, and integrates tightly with Laravel’s features. Rather than reinventing the wheel, these packages let you focus on building unique application logic.


Overview: Breeze, Jetstream, Fortify

Feature Breeze Jetstream Fortify
UI/Frontend Blade/Tailwind Livewire/Inertia None (Backend)
Auth Features Basic Advanced Advanced
API Support No Yes (optional) Yes
2FA, Profile No Yes Yes (Profile)
Intended For Simple Auth Complex, SPA/PWA API/SPA

Laravel Breeze

Laravel Breeze is the most straightforward package for authentication scaffolding—perfect for new projects or those needing simple authentication.

Features

  • Minimal and clean starter kit
  • Uses Blade templates with Tailwind CSS
  • Provides login, registration, password reset, email confirmation
  • Easy to customize

Installation

composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate

File Structure

Breeze generates simple controllers, routes, and Blade templates under resources/views/auth. You can easily modify these for your needs.

When to Use

  • Rapid prototyping
  • Learning authentication basics
  • Simple web apps with minimal UI needs

Laravel Jetstream

Jetstream builds upon Breeze, designed for feature-rich applications—including Single-Page Apps (SPAs) and teams.

Features

  • Authentication (login, register, password reset)
  • Email verification
  • Two-factor authentication (2FA)
  • Profile management
  • API tokens (with Laravel Sanctum)
  • Team management (optional)
  • Choose UI stack: Livewire (Blade) or Inertia.js (Vue)

Installation

Choose your preferred stack:

# For Livewire (Blade)
composer require laravel/jetstream
php artisan jetstream:install livewire

# For Inertia (Vue)
composer require laravel/jetstream
php artisan jetstream:install inertia

npm install && npm run dev
php artisan migrate

File Structure

Jetstream organizes authentication logic cleanly and introduces components for profile and 2FA management. It uses service classes and modern UI workflow.

When to Use

  • Projects requiring advanced auth features (2FA, teams, API tokens)
  • Building SPA, PWA, or dashboard-like applications
  • Applications with complex user management needs

Laravel Fortify

Fortify is a headless authentication backend for Laravel—no frontend or UI included.

Features

  • Handles auth backend: login, registration, password reset, email verification, 2FA
  • API-first, ideal for SPA/mobile apps
  • You provide your own frontend via HTTP requests

Installation

composer require laravel/fortify
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"
php artisan migrate

Then, enable Fortify in config/app.php and configure features as needed in config/fortify.php.

Usage

Once installed, Fortify registers authentication endpoints such as:

  • POST /login
  • POST /register
  • POST /forgot-password
  • POST /reset-password

You consume these endpoints from your own frontend, such as Vue, React, or a mobile app.

When to Use

  • Building custom UI or SPA/mobile frontends
  • Decoupled applications (Laravel backend, JavaScript frontend)
  • Projects that need only backend logic for authentication

Choosing the Right Package

  • Start with Breeze for classic web apps and see if its simplicity fits your needs.
  • Jetstream brings advanced features and ready-made SPA support.
  • Fortify is perfect for custom JavaScript UIs or when you want total frontend control.

You can even migrate from one to another as your application’s complexity grows.


Conclusion

Laravel’s modern authentication packages—Breeze, Jetstream, and Fortify—cover a wide range of project needs. Whether you’re prototyping, building a robust dashboard, or crafting a completely custom SPA, there’s a tool ready for you.

Official Docs

Streamline your authentication development, focus on what matters most, and let Laravel’s ecosystem handle the authentication plumbing.


Have questions about setting up Laravel authentication? Leave a comment below!