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.
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.
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.
Install a kit and register your first user
-
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 blogWhich 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.
-
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 inapp/Http/Controllers/Auth/instead of Livewire components. -
Migrate the users table
Every new Laravel app ships with a migration that creates three tables:
users,password_reset_tokensandsessions. The installer usually runs it for you on SQLite. If you changed your database in.env, run it yourself:php artisan migrateSchema::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. -
Build the frontend and run it
The kits use Vite to compile CSS and JavaScript.
composer run devstarts the PHP server, the Vite dev server and the queue worker together.npm install npm run build composer run devVisit
http://localhost:8000/register, create an account and you'll land on/dashboard. You're logged in. -
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.
Avoid this, do that
# 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.
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.
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.
- Create a new app with
laravel newand choose the Livewire (or React/Vue) kit. - Run
php artisan route:list --path=loginand find the controller or component behind/login. - Register two users, then check the
userstable and confirm the passwords are hashed. - Change the dashboard heading, reload and see your change.
- Run
php artisan testand count how many auth tests pass.
Key takeaways
laravel newoffers React, Vue and Livewire starter kits in Laravel 12.- Breeze is the classic minimal kit, and it's still useful for learning and older apps.
- Kits copy real files into your app: controllers or components, views,
routes/auth.phpand tests. - The
users,password_reset_tokensandsessionstables come from the default migration. Runphp artisan migrate. - Install a kit at the start of a project, never on top of a mature one.