In one sentence

A starter kit generates complete, tested login, registration, password reset and profile pages for you, so you start from working auth instead of a blank screen.

🏠It's like moving into a flat that already has locks, a doorbell and a key cabinet installed. You can repaint the doors however you like, but you don't have to build the locks yourself.

Why it matters

Auth is easy to get almost right

⏱️

Hours become minutes

Login, register, forgot password, email verification and profile settings all appear after one install.

πŸ›‘οΈ

Secure defaults

Session regeneration, rate limiting and CSRF protection are already wired in, which are the details beginners often miss.

πŸ“–

It's your code

The files are copied into your app, not hidden in a package. Read them, learn from them and change them freely.

The big picture

Pick a flavour

When you run laravel new in Laravel 12, the installer asks which starter kit you want. Each one gives you the same auth features, but the frontend technology is different.

βš›οΈ

React

An Inertia + React 19 + TypeScript frontend with shadcn/ui components. Good if you already know React.

πŸ’š

Vue

The same idea with Vue 3 + TypeScript via Inertia. Pages are .vue files.

⚑

Livewire

Interactive pages written in PHP + Blade, styled with Flux UI. A great fit if you'd rather stay in PHP.

🌬️

Breeze (classic)

The well-known minimal kit from Laravel 8–11, with simple Blade + Tailwind views. Still installable, and still great for learning.

πŸ’»laravel new bloginstaller asks questions
🧩Choose a kitReact · Vue · Livewire
πŸ—„οΈmigrateusers, sessions, reset tokens
🎨npm run buildcompile the frontend
βœ…Register!/register works
From an empty folder to a working sign-up page in a few minutes.
Step by step

Install a kit and register your first user

  1. Create the project with a starter kit

    Run the installer (see Installation if you haven't installed it yet) and answer the prompts.

    
              laravel new blog
            
    
              Which starter kit would you like to install?
                None
                React
                Vue
              β€Ί Livewire
    
              Which authentication provider do you prefer?
              β€Ί Laravel's built-in authentication
                WorkOS (Requires WorkOS account)
            

    Pick Laravel's built-in authentication. WorkOS is a hosted service that adds social login and passkeys, but you don't need it while you're learning.

  2. Look at what was generated

    The exact files depend on the kit. This is the rough shape of a Livewire kit:

    app/
    β”œβ”€β”€ Http/Controllers/Auth/     ← e.g. VerifyEmailController
    β”œβ”€β”€ Livewire/Actions/Logout.php
    └── Models/User.php            ← already existed
    resources/views/
    β”œβ”€β”€ livewire/auth/             ← login, register, forgot-password…
    β”œβ”€β”€ livewire/settings/         ← profile, password, appearance
    └── dashboard.blade.php
    routes/
    β”œβ”€β”€ web.php                    ← home + dashboard
    β”œβ”€β”€ auth.php                   ← all login/register routes
    └── settings.php               ← profile settings routes
    tests/Feature/Auth/            ← ready-made tests for every screen

    React and Vue kits put their pages in resources/js/pages/auth/ and use controllers in app/Http/Controllers/Auth/ instead of Livewire components.

  3. Migrate the users table

    Every new Laravel app ships with a migration that creates three tables: users, password_reset_tokens and sessions. The installer usually runs it for you on SQLite. If you changed your database in .env, run it yourself:

    
              php artisan migrate
            
    
              Schema::create('users', function (Blueprint $table) {
                  $table->id();
                  $table->string('name');
                  $table->string('email')->unique();
                  $table->timestamp('email_verified_at')->nullable();
                  $table->string('password');
                  $table->rememberToken();
                  $table->timestamps();
              });
            

    Need extra columns, like username? Add a new migration (see Migrations), then add the field to the register form and to $fillable.

  4. Build the frontend and run it

    The kits use Vite to compile CSS and JavaScript. composer run dev starts the PHP server, the Vite dev server and the queue worker together.

    
              npm install
              npm run build
              composer run dev
            

    Visit http://localhost:8000/register, create an account and you'll land on /dashboard. You're logged in.

  5. The classic option: Breeze

    Many tutorials (and older projects) use Laravel Breeze. It still works and its plain Blade views are very readable. Install it into a project created without a starter kit:

    
              composer require laravel/breeze --dev
              php artisan breeze:install blade
              php artisan migrate
              npm install && npm run dev
            
    ℹ️ Which should I choose?

    For new Laravel 12 apps, the official kits are the recommended path. Choose Livewire if you want to stay in PHP and Blade, and React/Vue if you already know them. Breeze is fine for learning and for maintaining existing apps.

Common mistakes

Avoid this, do that

❌ Avoid

          # Existing app with lots of custom routes…
          php artisan breeze:install blade
        

Starter kits overwrite files such as routes/web.php and layouts. Running one on a grown-up app can wipe your work.

βœ… Do

          laravel new blog   # choose a kit up front
          git init && git add -A && git commit -m "Starter kit"
        

Install the kit on day one and commit straight away, so you can always see what you've changed since.

πŸ’‘ Pro tip: read the generated tests

Run php artisan test right after installing. Every auth screen comes with a test, and reading them is one of the fastest ways to understand how the kit works.

πŸ‹οΈ Try it yourself
  1. Create a new app with laravel new and choose the Livewire (or React/Vue) kit.
  2. Run php artisan route:list --path=login and find the controller or component behind /login.
  3. Register two users, then check the users table and confirm the passwords are hashed.
  4. Change the dashboard heading, reload and see your change.
  5. Run php artisan test and count how many auth tests pass.
Recap

Key takeaways

Check yourself

Mini quiz