A production-ready Laravel 12 starter kit focused on speed, security, and developer experience. It ships with robust authentication (2FA included), a clean Livewire + Blade UI powered by Flux, Tailwind CSS 4 with Vite, and battle-tested tooling (Pest, PHPStan, Rector, Pint).
Before you begin, ensure your development environment meets the following requirements. This kit relies on modern PHP and Node.js versions to deliver the best performance and developer experience.
| Package | Version | Description |
|---|---|---|
| PHP | ^8.4 |
The latest stable version of PHP is required for modern language features. |
| Laravel | ^12.0 |
The framework core. |
| Node.js | β₯ 18 |
Required for building frontend assets with Vite. |
| PNPM | β₯ 8 |
The preferred package manager for Node dependencies (npm i -g pnpm). |
| Composer | β₯ 2 |
PHP dependency manager. |
| Database | SQLite/MySQL | SQLite is configured by default for zero-config setup. |
This kit comes pre-installed with a suite of powerful packages:
- Livewire Flux (
^2.1.1): A set of modern, accessible UI components. - Livewire Volt (
^1.7.0): Functional API for Livewire components. - Tailwind CSS (
^4.0.7): Utility-first CSS framework, integrated via@tailwindcss/vite. - Spatie Permissions (
^6.23): Role and permission management. - Spatie Activitylog (
^4.10): Log activity inside your app. - Spatie MediaLibrary (
^11.17): Associate files with models. - Nunomaduro Essentials (
^1.0): A collection of essential PHP and Laravel utilities.
Laravel Super Kit is designed to kickstart new applications with a solid foundation. It eliminates the repetitive setup of auth, UI scaffolding, and code quality tools.
- Advanced Authentication: Powered by Laravel Fortify. Includes Login, Registration, Password Reset, Email Verification, and Two-Factor Authentication (2FA).
- Modern UI Stack: Built with Livewire Volt and Flux UI components for a reactive, single-page-app feel without the complexity.
- Developer Experience: Pre-configured with
Pestfor testing,PHPStanfor static analysis,Rectorfor automated refactoring, andPintfor code style. - Ready-to-Use Settings: Complete user settings pages (Profile, Password, Appearance, 2FA).
- Backend Ready: Database-backed Queue, Sessions, and Cache are configured out-of-the-box (via SQLite) to mirror production behavior locally.
You can create a new project using Composer:
composer create-project helmordev/laravel-super-kit my-app
cd my-appRun the automated setup script. This handles installing dependencies (PHP & JS), setting up the .env file, generating keys, and migrating the database.
composer setupWhat composer setup does:
- Copies
.env.exampleto.env - Generates
APP_KEY - Creates
database/database.sqlite - Runs migrations
- Installs Node dependencies (
pnpm install) - Builds assets (
pnpm run build)
Start the development server, queue worker, and Vite dev server in one command:
composer devOr run them individually in separate terminals:
php artisan serve
php artisan queue:listen --tries=1
pnpm run devThe database is seeded with a test user:
- Email:
test@example.com - Password:
password
The .env file controls your application configuration. Key variables include:
| Variable | Default | Description |
|---|---|---|
APP_NAME |
Laravel |
The name of your application. |
APP_URL |
http://localhost |
The URL of your app (critical for 2FA/QR codes). |
DB_CONNECTION |
sqlite |
Database driver. Change to mysql or pgsql for production. |
QUEUE_CONNECTION |
database |
Driver for background jobs. |
SESSION_DRIVER |
database |
Driver for user sessions. |
CACHE_STORE |
database |
Driver for caching. |
- Theme: Global styles and Tailwind configuration are in
resources/css/app.css. - Layouts: Modify
resources/views/components/layouts/app.blade.phpto change the application shell. - Components: Reusable UI components are located in
resources/views/components/.
-
Create the View:
resources/views/pages/dashboard/users.blade.php<?php use Livewire\Volt\Component; use App\Models\User; new class extends Component { public function with() { return ['users' => User::all()]; } }; ?> <x-layouts.app title="Users"> <flux:heading>User Management</flux:heading> <div class="mt-4"> @foreach($users as $user) <div class="p-2 border-b">{{ $user->name }}</div> @endforeach </div> </x-layouts.app>
-
Define the Route:
routes/web.phpuse Livewire\Volt\Volt; Volt::route('/users', 'pages.dashboard.users') ->middleware(['auth', 'verified']) ->name('users');
Log important user actions easily:
activity()
->causedBy(auth()->user())
->event('project-created')
->log('Created a new project: ' . $project->name);// Assign role
$user->assignRole('admin');
// Check permission
if ($user->can('edit articles')) {
// ...
}Attach files to your models:
$user->addMedia($request->file('avatar'))
->toMediaCollection('avatars');1. Tailwind styles are missing
- Ensure the Vite directive is present in your head:
@vite(['resources/css/app.css', 'resources/js/app.js']). - Run
pnpm run devto regenerate styles.
2. 2FA QR Code not showing or invalid
- Verify
APP_URLin.envmatches exactly the URL you are accessing in the browser. - Ensure
CACHE_STOREandSESSION_DRIVERare working (defaultdatabaserequires migrated tables).
3. SQLite errors
- If the database is corrupted or missing, delete
database/database.sqliteand run:touch database/database.sqlite php artisan migrate
Please ensure your code passes all checks before submitting:
composer lint # Fixes style issues
composer test # Runs tests and static analysisThis project is open-sourced software licensed under the MIT license.