Mastering the Next Generation of Laravel Starter Kits: React and Livewire Walkthrough
Overview: Why Modern Starter Kits Matter
Building a robust authentication system from scratch is a repetitive, error-prone task that can stall the momentum of a new project. has long solved this with and , but the latest evolution of shifts the focus toward modern UI aesthetics and developer experience. These kits aren't just boilerplate; they are a curated selection of industry-best tools like V4 and , providing a professional-grade foundation for applications.
By leveraging these kits, you bypass the hours spent configuring build tools, setting up dark mode, and designing responsive sidebars. Instead, you start with a fully functional, high-fidelity dashboard that is ready for production. This tutorial explores the and flavors of these kits, demonstrating how to install, customize, and extend them to fit your specific application needs.
Prerequisites
To follow along with this guide, you should have a baseline understanding of the following:
- PHP & Laravel: Basic familiarity with the framework, including models and routing.
- Terminal Usage: Comfort using the command line to run
composerandphp artisancommands. - Local Development Environment: Tools like or to serve your local
.testsites. - Frontend Basics: A working knowledge of either (for the Inertia kit) or templates (for the Livewire kit).
Key Libraries & Tools
Before we dive into the code, let's identify the heavy lifters in these new kits:
- : The official scaffolding packages for rapid application setup.
- : A collection of re-usable components built using and . Unlike a traditional library, these are copied directly into your project for total control.
- V4: The newest version of the utility-first CSS framework, featuring improved performance and a simplified configuration process.
- V2: The bridge between and modern frontend frameworks like or .
- & : A full-stack framework for that allows you to build dynamic interfaces using . adds an elegant, single-file functional API to .
- : A delightful testing framework focused on simplicity and readability.
Code Walkthrough: Installing and Customizing React
The starter kit uses to deliver a seamless single-page application (SPA) experience. Let's look at the installation process and how to toggle between different visual layouts.
1. Installation
Start by using the installer to create a new project. You will be prompted to choose your stack. Select and choose the built-in authentication unless you specifically need integration.
# Create a new React project
laravel new react-app
During installation, you can opt for as your testing framework. The installer uses a "drift" plugin to automatically convert standard tests into the syntax, ensuring your test suite is modern from day one.
2. Switching Layouts in React
The new kits include multiple authentication layouts: Simple, Card, and Split. To change the appearance of your login or registration pages, you only need to modify a single import in the layout file.
Navigate to resources/js/layouts/auth-layout.tsx (or the equivalent .js file). You can swap the layout component being used:
// resources/js/layouts/auth-layout.tsx
// To change to a split layout with a quote and image on the left:
import { AuthSplitLayout } from '@/layouts/auth/auth-split-layout';
export default function AuthLayout({ children }) {
return <AuthSplitLayout children={children} />;
}
3. Adding Shadcn Components
Because components are just files in your resources directory, adding new ones is a matter of running an npx command. For instance, to add a toggle switch to your dashboard:
npx shadcn-ui@latest add switch
Then, import it directly into your dashboard page:
// resources/js/pages/dashboard.tsx
import { Switch } from "@/components/ui/switch";
export default function Dashboard() {
return (
<div>
<h1>Dashboard</h1>
<Switch />
</div>
);
}
Deep Dive: Livewire, Volt, and Functional PHP
If you prefer staying within the ecosystem while maintaining a dynamic frontend, the kit is the primary choice. This kit heavily utilizes , which allows you to define your component logic and template in the same file.
1. Creating a Volt Component
A component represents a modern way to handle state in . Instead of having a separate Class file and Blade file, everything is co-located.
php artisan make:volt counter
This creates a file at resources/views/livewire/counter.blade.php. Here is how you write a functional counter using the API:
<?php
use function Livewire\Volt\{state};
state(['count' => 0]);
$increment = fn () => $this->count++;
?>
<div>
<h1>{{ $count }}</h1>
<button wire:click="increment">+</button>
</div>
2. Livewire Routing
components can be served as full-page components. In your routes/web.php, you can map a URL directly to a component without needing a controller:
use Livewire\Volt\Volt;
Volt::route('/counter', 'counter');
This approach dramatically reduces the "boilerplate" code required to get a functional page onto the screen.
Syntax Notes
- Class Names: In components, remember to use
classNameinstead ofclass. When working with the , ensure your text colors (liketext-white) are applied to visible containers, or they may be obscured by background divs. - Middleware: The kits come with
password.confirmmiddleware pre-configured. Applying this to a route forces the user to re-enter their password before viewing sensitive settings. - Email Verification: To enable mandatory email verification, simply ensure your
Usermodel implements theMustVerifyEmailcontract and uncomment the relevant line in your model file.
Practical Examples
- SaaS Dashboard: Use the
SidebarLayoutas the foundation for a multi-tenant dashboard. Since the sidebar is fully customizable, you can easily add dynamic menu items based on the user's subscription tier. - Marketing Pages: The
AuthSplitLayoutis perfect for modern landing pages where you want a high-resolution brand image or customer testimonial to sit alongside the sign-up form. - Internal Tools: Use the kit with equivalents to build rapid CRUD interfaces. The ability to keep logic and views in a single file makes maintaining dozens of internal forms much easier.
Tips & Gotchas
- Asset Watcher: Always keep
npm run devorviterunning in the background. If your layout changes aren't appearing, it's likely because the asset watcher isn't picking up your file saves. - Shadcn Portability: Remember that isn't a package you update via
composerornpm. If you want the latest version of a component, you generally re-run theaddcommand and overwrite the existing file. - Vue Compatibility: If you choose the starter kit, be aware that as of early 2025, some components may still be catching up to V4. Check the official documentation for the latest compatibility patches.
- Testing: Use to verify your customizations. If you delete a component you think is unused, run
vendor/bin/pestto ensure you haven't broken a dependency in the authentication flow.
- 13%· products
- 13%· products
- 11%· products
- 11%· products
- 9%· products
- Other topics
- 43%

Laravel's New Starter Kits Launch Event ⚡
WatchLaravel // 1:08:42
The official YouTube channel of Laravel, the clean stack for Artisans and agents. We will update you on what's new in the world of Laravel, from the framework to our products Cloud, Forge, and Nightwatch.