--- title: "Livewire Starter Kit Documentation" description: "Overview and installation of the Livewire 4 edition of SaaS Laravel: tech stack, conventions, getting the code and next steps with Flux UI, Blade and Alpine.js." --- # Livewire Starter Kit ## What's in the kit You get the whole SaaS Laravel backend (multi-tenancy, auth, users, roles, domains, localization) plus a frontend built with Livewire 4, Blade and Alpine.js. There's no Inertia, no TypeScript and no separate JavaScript framework. Every page is a class-based Livewire component in a Laravel module, and its Blade view sits in `resources/views`. For the UI we wrapped the free edition of Flux in our own `x-common.*` components, styled with Tailwind CSS 4. Validation goes through regular Laravel Form Requests. ## Tech stack | Package | Version | Used for | | --- | --- | --- | | `livewire/livewire` | ^4.1 | Class-based components, `Route::livewire`, `wire:navigate`, `wire:sort` | | `livewire/flux` | ^2.13 | Flux free edition, used behind the `x-common.*` wrappers and in the app shell | | Alpine.js | bundled with Livewire | Client-only behaviour (`x-data`, `$wire.entangle`, `Alpine.data()`) | | `laravel/fortify` | ^1.41 | Login, registration, password reset, two-factor and passkeys | | `iconify-icon` | ^3.0 | The `` web component behind `x-common.icon` | | `@laravel/passkeys` | ^0.2 | Passkey registration and login (`resources/js/passkeys.js`) | | `tailwindcss` / `@tailwindcss/vite` | ^4 | Styling | | `vite-plus` / `laravel-vite-plugin` | 1.4 / ^3.1 | Build (`vp dev`, `vp build`) | | `blade-formatter` | ^1.44 | Formatting and checking Blade views | | `pestphp/pest` | ^5.3 | Tests | | `larastan/larastan` | ^3.13 | Static analysis (`phpstan analyse`) | | `laravel/pint` | ^1.32 | PHP code style | | `laravel/boost` | ^2.10 | AI guidelines, skills and MCP server | ## Conventions | Topic | Convention | Example | | --- | --- | --- | | Components | Class-based, in `Modules//Livewire` | `Modules\User\Livewire\Index` | | Full-page routes | `Route::livewire()` in the module's `routes/web.php` | `Route::livewire('users', Index::class)` | | Nested component tag | `:: />`, both kebab-case | `` | | Page views | `resources/views/pages/`, rendered by name | `view('pages.users.index')` | | Page-only modals and pieces | `pages//partials` | `` | | UI controls | `x-common.*` wrappers, never Flux tags | `` | | Validation | Form Request + `validateFormRequest()` | `UserRequest` in `Modules/User/Http/Requests` | | Title and breadcrumbs | `->title()` and `->layoutData()` in `render()` | See [Layouts](/docs/livewire/layouts#page-title-and-breadcrumbs) | | Translations | PHP lang files, slash keys | `__('modules/user.index.title')` | | Icons | Iconify names | `lucide:users` | ## Get the code Once you've bought the kit, you'll get access to the private repository `the-erag/saas-laravel-starter-kit-livewire` (see [Repository access](/docs/purchase/repository-access)). Clone it like this: ```bash git clone https://github.com/the-erag/saas-laravel-starter-kit-livewire.git livewire cd livewire ``` ## Install The full setup (PHP, database, Herd domains, tenancy) is covered in [Local development](/docs/getting-started/local-development). Here's the short version: ::: code-group ```bash [One command] composer setup php artisan db:seed ``` ```bash [Step by step] composer install cp .env.example .env php artisan key:generate php artisan migrate --seed npm install npm run build ``` ::: `composer setup` runs the migrations but doesn't seed, so run `php artisan db:seed` once. That creates the roles, permissions and menus, plus one default user for each role. As shipped, `.env.example` has `APP_URL=http://livewire.test` and `APP_DOMAIN=livewire.test`. Change both to your own domain. To start everything, run `composer dev`. You'll find the rest of the commands in [Development](/docs/livewire/development#daily-workflow). ::: tip There's no code generation step in this kit. No Wayfinder, no TypeScript types and no translation JSON: Blade calls `route()` and `__()` directly, so a new route or translation key works as soon as you save the file. ::: ## Next steps - [Architecture](/docs/livewire/architecture): how a request flows, the folders, module registration, permissions and translations - [Components](/docs/livewire/components): the `x-common.*` wrappers, shared Blade components and the app shell - [Pages](/docs/livewire/pages): every page, its component and the route it lives on - [Layouts](/docs/livewire/layouts): the sidebar/header app layout, the card/simple/split auth layout and the settings layout - [Livewire](/docs/livewire/livewire): full-page and nested components, Form Request validation, events, modals and toasts - [Development](/docs/livewire/development): the commands, and how to add a page and a form