breeze
Minimal Laravel authentication scaffolding with Blade, Vue, or React + Tailwind.
Top Related Projects
Laravel UI utilities and presets.
Tailwind scaffolding for the Laravel framework.
A full-stack framework for Laravel that takes the pain out of building dynamic UIs.
Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.
A Tailwind CSS frontend preset for the Laravel Framework
The Laravel Boilerplate Project - https://laravel-boilerplate.com
Quick Overview
Laravel Breeze is a minimal, simple implementation of all of Laravel's authentication features, including login, registration, password reset, email verification, and password confirmation. It provides a lightweight starting point for building Laravel applications with authentication functionality.
Pros
- Simple and lightweight authentication scaffolding
- Easy to customize and extend
- Integrates seamlessly with Laravel's ecosystem
- Includes both Blade and Inertia (Vue.js) frontend options
Cons
- Limited features compared to more comprehensive packages like Laravel Jetstream
- May require additional work for complex authentication scenarios
- Styling is minimal and may need customization for production use
- Not suitable for projects requiring advanced user management features out of the box
Code Examples
- Installing Breeze with Blade templates:
composer require laravel/breeze --dev
php artisan breeze:install
- Customizing the login view:
// In app/Http/Controllers/Auth/AuthenticatedSessionController.php
public function create()
{
return view('auth.custom-login');
}
- Adding custom fields to registration:
// In app/Http/Controllers/Auth/RegisteredUserController.php
protected function create(array $input)
{
return User::create([
'name' => $input['name'],
'email' => $input['email'],
'password' => Hash::make($input['password']),
'custom_field' => $input['custom_field'],
]);
}
Getting Started
To get started with Laravel Breeze, follow these steps:
-
Create a new Laravel project:
laravel new my-project cd my-project
-
Install Laravel Breeze:
composer require laravel/breeze --dev
-
Install Breeze scaffolding:
php artisan breeze:install
-
Install and compile frontend assets:
npm install npm run dev
-
Set up your database and run migrations:
php artisan migrate
-
Start your Laravel development server:
php artisan serve
Your Laravel application with Breeze authentication is now ready to use!
Competitor Comparisons
Laravel UI utilities and presets.
Pros of UI
- More customizable and flexible for advanced users
- Supports Bootstrap and Vue.js out of the box
- Offers a wider range of pre-built components
Cons of UI
- Steeper learning curve for beginners
- Requires more manual configuration
- Less opinionated, which can lead to inconsistencies in large projects
Code Comparison
UI:
php artisan ui bootstrap
php artisan ui vue
php artisan ui vue --auth
Breeze:
php artisan breeze:install
php artisan breeze:install vue
php artisan breeze:install react
UI focuses on providing a foundation for building authentication views and routes, while Breeze offers a more complete, opinionated starting point for Laravel applications. Breeze includes Tailwind CSS by default and provides a streamlined authentication system with features like email verification and two-factor authentication.
UI is better suited for developers who want more control over their frontend stack and are comfortable with manual configuration. Breeze, on the other hand, is ideal for developers who prefer a quick setup with modern best practices baked in.
Both packages serve different needs within the Laravel ecosystem, and the choice between them depends on the project requirements and developer preferences.
Tailwind scaffolding for the Laravel framework.
Pros of Jetstream
- Offers more advanced features like team management and API support
- Includes Livewire or Inertia.js for dynamic frontend interactions
- Provides a more comprehensive starter kit with additional UI components
Cons of Jetstream
- Steeper learning curve due to additional complexity
- May include unnecessary features for simpler projects
- Requires more setup and configuration
Code Comparison
Breeze (basic route definition):
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth'])->name('dashboard');
Jetstream (team-based route definition):
Route::middleware(['auth:sanctum', 'verified', 'team'])
->get('/team/dashboard', function () {
return view('team.dashboard');
})->name('team.dashboard');
Breeze focuses on simplicity and minimal setup, making it ideal for smaller projects or developers new to Laravel. It provides essential authentication features without extra complexity.
Jetstream offers a more feature-rich starting point, including team management, API tokens, and two-factor authentication. It's better suited for larger projects or those requiring advanced functionality out of the box.
Choose Breeze for quick, straightforward authentication setup, or Jetstream for a more comprehensive starter kit with advanced features and frontend options.
A full-stack framework for Laravel that takes the pain out of building dynamic UIs.
Pros of Livewire
- More dynamic and interactive UI components without writing JavaScript
- Easier to create complex, real-time user interfaces
- Better suited for single-page applications (SPAs)
Cons of Livewire
- Steeper learning curve for developers new to the concept
- Can be slower for complex applications due to increased server requests
- Requires more server resources compared to static pages
Code Comparison
Livewire component example:
class SearchUsers extends Component
{
public $search = '';
public function render()
{
return view('livewire.search-users', [
'users' => User::where('name', 'like', "%{$this->search}%")->get(),
]);
}
}
Breeze controller example:
class UserController extends Controller
{
public function index(Request $request)
{
$users = User::where('name', 'like', "%{$request->search}%")->get();
return view('users.index', compact('users'));
}
}
Livewire offers a more streamlined approach for creating interactive components, while Breeze provides a traditional MVC structure. Livewire is better suited for dynamic, real-time applications, whereas Breeze is simpler for basic CRUD operations and static pages. The choice between the two depends on the project's specific requirements and the development team's familiarity with each technology.
Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.
Pros of Inertia
- Allows for building single-page apps without the complexity of a full SPA framework
- Provides a seamless integration between backend and frontend, maintaining server-side routing
- Supports multiple frontend frameworks (Vue, React, Svelte)
Cons of Inertia
- Steeper learning curve for developers new to SPA concepts
- Requires more setup and configuration compared to Breeze's out-of-the-box solution
- May have performance implications for larger applications due to increased payload size
Code Comparison
Inertia (Vue.js component):
<template>
<layout>
<h1>Welcome</h1>
<p>Hello {{ user.name }}, welcome to your dashboard.</p>
</layout>
</template>
<script>
export default {
props: ['user']
}
</script>
Breeze (Blade template):
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 bg-white border-b border-gray-200">
You're logged in!
</div>
</div>
</div>
</div>
</x-app-layout>
A Tailwind CSS frontend preset for the Laravel Framework
Pros of tailwindcss
- Lightweight and focused solely on frontend styling
- Provides a minimal Tailwind CSS setup without additional authentication features
- Allows for more customization and flexibility in frontend implementation
Cons of tailwindcss
- Lacks built-in authentication scaffolding
- Requires more manual setup for common Laravel features
- May need additional packages for a complete frontend solution
Code Comparison
Breeze (app.blade.php):
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
tailwindcss (app.blade.php):
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
The main difference is that Breeze provides a more comprehensive starter kit with authentication scaffolding, while tailwindcss focuses solely on providing a minimal Tailwind CSS setup. Breeze includes additional meta tags and is more aligned with modern Laravel practices, while tailwindcss offers a simpler starting point for developers who want more control over their frontend implementation.
The Laravel Boilerplate Project - https://laravel-boilerplate.com
Pros of Laravel Boilerplate
- More comprehensive feature set, including user management, role-based access control, and social authentication
- Includes a pre-built admin panel with customizable dashboard
- Offers more advanced frontend scaffolding with Bootstrap 4 and Vue.js
Cons of Laravel Boilerplate
- Steeper learning curve due to its complexity and additional features
- May include unnecessary features for smaller projects, potentially bloating the codebase
- Less frequently updated compared to Breeze
Code Comparison
Laravel Boilerplate (User Registration):
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user) ?: redirect($this->redirectPath());
}
Breeze (User Registration):
public function store(Request $request)
{
$request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
event(new Registered($user));
Auth::login($user);
return redirect(RouteServiceProvider::HOME);
}
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Introduction
Breeze provides a minimal and simple starting point for building a Laravel application with authentication. Styled with Tailwind, Breeze publishes authentication controllers and views to your application that can be easily customized based on your own application's needs.
Laravel Breeze is powered by Blade and Tailwind. If you're looking for a more robust Laravel starter kit that includes two factor authentication, Livewire / Inertia support, and more, check out Laravel Jetstream.
Official Documentation
Documentation for Breeze can be found on the Laravel website.
Contributing
Thank you for considering contributing to Breeze! You can read the contribution guide here.
Code of Conduct
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
Laravel Breeze is open-sourced software licensed under the MIT license.
Top Related Projects
Laravel UI utilities and presets.
Tailwind scaffolding for the Laravel framework.
A full-stack framework for Laravel that takes the pain out of building dynamic UIs.
Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.
A Tailwind CSS frontend preset for the Laravel Framework
The Laravel Boilerplate Project - https://laravel-boilerplate.com
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot