skip to content

Official Starter Kits

Laravel's starter kits publish a React, Vue, Svelte or Livewire app with auth screens into your own codebase, succeeding Breeze and Jetstream. Interviewers ask what you own after installing one.

on this pageshow

explore

questions

5

Which official starter kits does Laravel 13 offer, and what does each one give a brand-new application?

level: juniorimportance: must knowfreq 52%

answer

  1. three Inertia kits, one Livewire kit
  2. TypeScript plus a shadcn flavour
  3. Flux UI on the Livewire side
  4. Fortify behind every auth screen
  5. laravel new or --react/--vue/--svelte/--livewire

basics

~20 s

Laravel 13 offers React, Vue and Svelte kits built on Inertia with TypeScript, Tailwind and a shadcn component library, and a Livewire kit with Flux UI. Each creates a full app with Fortify-backed login, registration, password reset, 2FA and settings pages.

solid answer

~40 s

There are four official kits. The **React**, **Vue** and **Svelte** kits use Inertia 3, so Laravel keeps routing and controllers while pages are TypeScript components: React 19 with shadcn/ui, Vue's Composition API with shadcn-vue, Svelte 5 with shadcn-svelte, all on Tailwind, plus Wayfinder for typed route helpers. The **Livewire** kit uses Livewire 4 with Flux UI components and Blade, for teams that want to stay in PHP. Every kit ships the same product: login, registration, password reset, email verification, two-factor authentication and passkeys through Laravel Fortify, plus a dashboard and profile/security settings pages. You pick one in the `laravel new` prompt or with `--react`, `--vue`, `--svelte` or `--livewire`; the installer runs `composer create-project` on the kit's repository, so the result is a complete application.

code

bash · 6 lines
bash
# interactive: pick React, Vue, Svelte or Livewire at the prompt
laravel new hr-portal

# non-interactive: choose the kit with a flag
laravel new hr-portal --livewire
laravel new hr-portal --react

go deeper

for a junior

Name the four kits, what each is built on, and that all of them give you working login, registration and settings pages.

for a middle

Explain the Inertia versus Livewire split, Fortify behind the auth screens, Wayfinder in the Inertia kits and the install:features pruning step.

for a senior

Pick a kit from team skills and product needs, and point out what you inherit: Fortify's routes, a component library, a test suite.

for a principal

Treat the kit as a one-time scaffold that sets the front-end stack for years, so the choice is really a hiring and skills decision.

## What a starter kit is A Laravel **starter kit** is a complete Laravel application, published as a Composer project, that already contains a front end and working **authentication screens**. You do not add it to an existing app; you **create** a new app from it. The Laravel installer does this for you: `laravel new my-app` asks which kit you want, then runs `composer create-project laravel/react-starter-kit my-app` (or the Vue, Svelte or Livewire equivalent) instead of creating the plain `laravel/laravel` skeleton. Kits are optional — the docs are explicit that a fresh skeleton is equally valid — but they are the fastest way to a logged-in dashboard. ## The four kits | Kit | Front-end model | UI stack | Component library | |---|---|---|---| | React | Inertia 3 pages | React 19, TypeScript, Tailwind 4 | shadcn/ui (Radix primitives) | | Vue | Inertia 3 pages | Vue Composition API, TypeScript, Tailwind | shadcn-vue (Reka UI) | | Svelte | Inertia 3 pages | Svelte 5, TypeScript, Tailwind | shadcn-svelte | | Livewire | Livewire 4 components in Blade | PHP and Blade, Tailwind | Flux UI | **Inertia kits** keep Laravel's routes and controllers: a controller returns `Inertia::render('dashboard')` and the page is a TypeScript component under `resources/js/pages`. They also include **Wayfinder**, which generates typed functions for your Laravel routes and controller actions so the front end calls them without hard-coded URLs. The **Livewire kit** keeps everything in Blade and PHP. Its pages live under `resources/views/pages` as Livewire components, its layouts under `resources/views/layouts`, and it uses **Flux UI** for buttons, inputs, navigation and the sidebar. It does not use Volt. ## What every kit includes - **Authentication through Laravel Fortify**: login, logout, registration, password reset, email verification, password confirmation, two-factor authentication and passkeys. Fortify supplies the routes and controllers; the kit supplies the screens and the `app/Actions/Fortify` classes such as `CreateNewUser`. - **A dashboard** behind the `auth` middleware. - **Settings pages** for profile, security (password and two-factor) and appearance, in every kit. - **Two app layouts** — sidebar (the default) and header — and three auth-page layouts: simple, card and split. - **Tooling**: Vite with Tailwind, PHPUnit feature tests for the auth and settings flows (`tests/Feature/Auth`, `tests/Feature/Settings`), Pint, and Composer scripts such as `composer run dev`. - **Wiring you can read**: a `FortifyServiceProvider` in `app/Providers` tells Fortify which page to render for each screen — in the React kit, `Fortify::loginView()` returns `Inertia::render('auth/login')` — so following a request from route to screen never leaves your codebase. ## After creation ```bash cd my-app npm install && npm run build composer run dev ``` The installer usually handles the npm steps for you. During creation the kits also run a post-create hook, `php artisan install:features`, which asks which authentication features to keep — email verification, registration, two-factor, passkeys, password confirmation — and removes the code for the ones you drop. ## Choosing between them 1. **The team writes React, Vue or Svelte already** → the matching Inertia kit. 2. **The team is PHP-first and wants reactive UI without a JavaScript framework** → the Livewire kit. 3. **SSO or social login is a requirement** → the WorkOS AuthKit variant of whichever kit fits. 4. **No auth at all** → the plain skeleton, or a kit created with `--no-authentication`. ## Where the code lives | Concern | Inertia kits | Livewire kit | |---|---|---| | Pages | `resources/js/pages/*.tsx` (or `.vue` / `.svelte`) | `resources/views/pages` | | Layouts | `resources/js/layouts` | `resources/views/layouts` | | UI primitives | `resources/js/components/ui` | Flux components, customisable under `resources/views/flux` | | Auth screens | `resources/js/pages/auth` | `resources/views/pages/auth` | ## What interviewers check They want to hear that the kits are **Inertia-based SPAs or Livewire apps**, that **Fortify** does the authentication, and that the result is an **ordinary app you then own**. Describing Breeze or Jetstream as the current kits dates the answer: both READMEs say they are for Laravel 11.x and earlier.

  • What is Wayfinder doing in the React, Vue and Svelte kits?
    Wayfinder generates TypeScript functions for your Laravel routes and controller actions, so Inertia pages import a typed route instead of writing a URL string. Because those definitions are generated at build time, deleting a route that a page still imports makes the front-end build fail, which surfaces broken links early.
  • Can you add another shadcn component to the React kit after installation?
    Yes. The kit's UI components are source files in `resources/js/components/ui`, not a locked library, so you run `npx shadcn@latest add switch` and the component is written into that folder for you to import and edit.
  • Does the Livewire kit use Volt?
    No. The Livewire kit is built on Livewire 4, Flux UI and Blade, with its pages as Livewire components under `resources/views/pages`; it does not depend on Volt. The installer's `--livewire-class-components` flag chooses a variant with separate class-based components instead.

saying these in an interview costs you the question

  • Breeze and Jetstream are the official kits for a new Laravel 13 app
  • The React kit is a separate SPA that talks to a Laravel API with tokens
  • The kits implement authentication with their own controllers instead of Fortify
  • The Livewire kit is built on Volt
  • A starter kit is a Composer package you add to an existing app
open as a page

What does it mean in practice that a Laravel starter kit's code is yours, and how do you keep a starter-kit app up to date?

level: middleimportance: must knowfreq 42%

basics

~20 s

A starter kit copies a whole application into your repository; there is no kit package to update. You edit its screens, actions and routes freely and keep the underlying packages (framework, Fortify, Inertia or Livewire, Flux) current with Composer and npm.

open as a page

Why are Laravel Breeze and Jetstream no longer the recommended starting point for a Laravel 13 app, and how do the current kits differ?

level: middleimportance: should knowfreq 38%

basics

~20 s

Breeze and Jetstream are marked as starter kits for Laravel 11.x and earlier. Laravel 13's kits are whole Inertia 3 or Livewire 4 applications with TypeScript, shadcn or Flux UI and Fortify auth, created by laravel new instead of an install command.

open as a page

For an internal HR tool on Laravel 13 where staff sign in through company SSO and nobody self-registers, which starter kit variant fits and what do you configure?

level: seniorimportance: should knowfreq 22%

basics

~20 s

Use the WorkOS AuthKit variant of whichever kit suits the team (laravel new --workos). It delegates sign-in to AuthKit, which supports SSO, so you set the WORKOS_* variables, disable email-and-password in AuthKit and align AuthKit's inactivity timeout with Laravel's session lifetime.

open as a page

How do you create a Laravel app from a community starter kit with the installer's --using option, and what must such a kit provide?

level: middleimportance: nice to knowfreq 14%

basics

~10 s

Run laravel new my-app --using=vendor/package; the installer runs composer create-project on that Packagist package instead of laravel/laravel. The kit must declare its environment variables in .env.example and its setup steps in composer.json's post-create-project-cmd.

open as a page