How to (Still) Use Laravel Breeze in Laravel 12

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

  1. Register a user.
  2. Log in.
  3. Try password reset.
  4. Check the UI (customize with Tailwind as needed).

🧱 When to Use Breeze vs Other Starter Kits

FeatureBreezeJetstreamLaravel 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