As of Laravel 12, Laravel Breeze is still fully compatible and remains one of the simplest ways to scaffold authentication and frontend boilerplate for new projects.
Here’s how to install and use Laravel Breeze in Laravel 12, step-by-step:
✅ What is Laravel Breeze?
Laravel Breeze provides a minimal and simple starting point for building a Laravel application with authentication — login, registration, email verification, password reset, etc.
It uses:
- Blade or Inertia (with Vue or React)
- Tailwind CSS
- Laravel’s built-in authentication
🚀 Step-by-Step: Install Laravel Breeze in Laravel 12
✅ Prerequisites
Make sure you have:
- PHP 8.2+
- Laravel 12 installed
- Node.js & npm
- Composer
1️⃣ Create a New Laravel 12 Project (Skip if you already have one)
composer create-project laravel/laravel laravel-breeze-demo
cd laravel-breeze-demo
2️⃣ Install Laravel Breeze via Composer
composer require laravel/breeze --dev
3️⃣ Scaffold the Authentication System
Choose the frontend stack you want. Options:
Blade (default):
php artisan breeze:install blade
Inertia + Vue:
php artisan breeze:install vue
Inertia + React:
php artisan breeze:install react
If you just run:
php artisan breeze:install
…it defaults to Blade.
4️⃣ Install NPM Dependencies and Compile Assets
npm install && npm run dev
Or for production:
npm run build
5️⃣ Run Migrations
php artisan migrate
6️⃣ Start the Development Server
php artisan serve
Now open http://localhost:8000 and you’ll see your Laravel 12 app with login, register, forgot password, and dashboard pages — all prebuilt and ready to customize.
🧩 Features Included by Default
- User registration
- Login & logout
- Password reset & confirmation
- Email verification (if enabled)
- Simple UI with Tailwind CSS
- Responsive layout
- Optional API tokens
⚙️ Optional: Enable Email Verification
In app/Models/User.php, implement:
use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
Then in your routes/web.php, wrap dashboard route:
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/dashboard', fn () => view('dashboard'))->name('dashboard');
});
🧪 Testing It Works
- Register a user.
- Log in.
- Try password reset.
- Check the UI (customize with Tailwind as needed).
🧱 When to Use Breeze vs Other Starter Kits
| Feature | Breeze | Jetstream | Laravel UI |
|---|---|---|---|
| Simplicity | ✅ Very minimal | ❌ Feature-heavy | ✅ Basic |
| Uses Inertia.js | ✅ Optional | ✅ Optional | ❌ No |
| Profile management | ❌ Minimal | ✅ Full | ❌ No |
| API with Sanctum | ✅ Supported | ✅ Built-in | ❌ No |
Use Breeze if:
- You want a minimal auth starter
- You want to choose your own frontend tech stack
- You’re building a lightweight or custom UI
🧾 Final Thoughts
Laravel Breeze is fully compatible with Laravel 12 and remains one of the best ways to start a new Laravel project with built-in authentication and frontend scaffolding.
It gives you just enough to get going — and stays out of your way when you want to customize.
composer require laravel/breeze --dev
php artisan breeze:install vue # or blade, react
npm install && npm run dev
php artisan migrate
