tillythecoder.com
tillythecoder.com
Laravel 12 Starter Kits — A Complete Field Guide
Tilly The Coder

Laravel 12 Starter Kits — A Complete Field Guide

Tilly The Coder · ·
4 mins
This is the estimated time it takes to read the article.
Vue 3
Inertia.js
Livewire 3
PHP
React
Laravel

Laravel 12 shipped in February 2025 with an all‑new starter‑kit experience that replaces the long‑serving Breeze and Jetstream.
Instead of installing a package after you scaffold your project, you now choose a fully‑featured template before the installer runs, and the CLI drops a complete code‑base (front + back end) into place. You own every line, so nothing stands between you and customisation.

1. What exactly is a “starter kit”?

  • A Git‑repository on Packagist that looks like a normal Laravel project.

  • Must contain authentication, registration, password‑reset flows and a sensible UI.

  • May target any front‑end technology (React, Vue, Livewire, Blade‑only APIs, etc.).

  • Distributed exactly like a Composer package, so the Laravel installer can “clone & re‑namespace” it for you.

2. Official first‑party kits

Kit

Front‑end stack

Layout choices

Component library

SSR‑ready?

React

React 19 + Inertia 2 + TypeScript

sidebar / header

shadcn/ui

✅ Inertia SSR support

Vue

Vue 3 (Composition API) + Inertia 2 + TS

sidebar / header

shadcn‑vue

Livewire

Blade + Livewire 3

sidebar / header

Flux UI

n/a

All three default to Tailwind 4.

Creating a project interactively

composer global require laravel/installer

laravel new acme-portal
# ⇨ choose “React”, “Vue”, or “Livewire” when prompted
npm i && npm run dev
php artisan serve

That’s it—you have login, register, password reset, email verification, settings, dark‑mode, etc., out of the box.

3. Installing third‑party kits with --using

Any Packagist package that contains a valid composer.json + .env.example can be used:

# Blade‑only UI
laravel new blog-backend \
  --using=nikolaybalkandzhiyski/laravel-12-blade-starter-kit
# API‑first, JWT‑auth kit
laravel new api-service \
  --using=mehedi8gb/laravel-api-starter-kit

Both examples above are community kits published in 2025.

Tip: keep your own preferred boilerplate private by pushing it to a GitHub repo, tagging a release on Packagist and pointing --using at it.

4. Switching from sidebar to header navigation

All official kits ship two complete layout files. Changing the import (or Blade component) flips the entire shell.

4.1 React (Inertia)

import AppLayoutTemplate from '@/layouts/app/app-header-layout'; // ← switch!
import AppLayoutTemplate from '@/layouts/app/app-header-layout'; // ← switch!
import { ReactNode }       from 'react';

export default function AppLayout({ children }: { children: ReactNode }) {
  return <AppLayoutTemplate>{children}</AppLayoutTemplate>;
}

4.2 Vue 3 (Composition API, <script setup>)

<script setup lang="ts">
import AppLayout from '@/layouts/app/AppHeaderLayout.vue'; // swap import
</script>

<template>
  <AppLayout>
    <slot />
  </AppLayout>
</template>

4.3 Livewire 3 / Blade

{{-- Switch to the header layout --}}
<x-layouts.app.header>
    <flux:main container>
        {{ $slot }}
    </flux:main>
</x-layouts.app.header>

Save, refresh the browser, and your navigation jumps from a collapsible side‑menu to a polished top bar—no extra build step required.

5. Extra goodies you might overlook

Feature

Where / how

AuthKit (WorkOS), passkeys, social log‑in, SSO

Select the WorkOS variant at install time, then set WORKOS_CLIENT_ID, WORKOS_API_KEY, WORKOS_REDIRECT_URL in .env

shadcn / Flux components

npx shadcn@latest add switch (React) or npx shadcn-vue@latest add switch (Vue) publishes ready‑to‑edit components into resources/js/components

Inertia SSR (React / Vue)

npm run build:ssr then composer dev:ssr for local testing with hydration

Email verification

Uncomment the MustVerifyEmail import + interface on the User model, protect routes with ->middleware(['auth','verified'])

Publishing mail templates

php artisan vendor:publish --tag=laravel-mail to own every pixel of your emails

6. Migrating from Breeze / Jetstream

Existing project? Keep the kit you already have—nothing breaks. For new builds the CLI simply hides Breeze/Jetstream, but you can still:

composer require laravel/breeze:"^2.0"   # or laravel/jetstream:"^5.0"
php artisan breeze:install --inertia
npm i && npm run dev

Breeze will pull in its own stub views and live happily next to the new installer.

7. Troubleshooting quick‑hits

  1. “No starter kits appear in Sail/WSL2” – The CLI prompts run before Sail spins up. Install locally (via php.new or Herd‑Lite) first, then pull Sail in.

  2. “I need classic Blade only” – use a community kit such as LaravelDaily/Starter‑Kit.

  3. “Do I need to update the kit?” – No. You own the code; treat it like any other part of your app.

Final thoughts

Laravel 12’s new starter‑kit ecosystem is opinionated but hands‑off: you start with a production‑ready foundation and can tear into every component the moment you need to. Whether you lean React, Vue, Livewire, or pure Blade, the installer’s --using flag plus Packagist turns the whole community into your personal boiler‑plate library. Happy hacking! 🎉