webmintydotcom / laravel-quickstart-inertia
Laravel starter kit with common addons.
Package info
github.com/webmintydotcom/laravel-quickstart-inertia
Language:TypeScript
Type:project
pkg:composer/webmintydotcom/laravel-quickstart-inertia
Requires
- php: ^8.4
- inertiajs/inertia-laravel: ^3.0
- laravel/framework: ^13.0
- laravel/tinker: ^3.0.0
- spatie/laravel-data: ^4.17
- spatie/laravel-ray: ^1.40
- spatie/pest-expectations: ^1.11
- tightenco/ziggy: ^2.6
Requires (Dev)
- driftingly/rector-laravel: ^2.1
- fakerphp/faker: ^1.23
- larastan/larastan: ^3.6
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- pestphp/pest: ^4.1
- pestphp/pest-plugin-browser: ^4.3.0
- pestphp/pest-plugin-faker: ^4.0.0
- pestphp/pest-plugin-laravel: ^4.0.0
- pestphp/pest-plugin-type-coverage: ^4.0.2
- webminty/boost-webminty-guidelines: ^3.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Introduction
A starter kit for Laravel applications with React, Inertia.js, Shadcn UI, and Tailwind CSS v4. Designed to help you quickly set up a new full-stack Laravel project with a modern development environment.
Installation
laravel new my-app --pest --npm --using=webmintydotcom/laravel-quickstart-inertia
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Laravel 13, PHP 8.4 |
| Frontend | React 19, TypeScript 7 |
| Routing | Inertia.js |
| UI Components | Shadcn UI |
| Styling | Tailwind CSS v4 |
| Build | Vite 8 |
| Testing | Pest 5, Larastan |
Included Packages
Laravel
Version 13 of Laravel is used in this starter kit.
Inertia.js
Inertia.js connects the Laravel backend to the React frontend without needing an API. Pages are React components rendered via Inertia::render() in your routes and controllers.
Ziggy
Ziggy provides a route() helper in JavaScript, so you can use Laravel named routes in your React components. Call the global route() or import { route } from 'ziggy-js'. Both work in the browser and under SSR, because HandleInertiaRequests shares the route list as a ziggy prop that resources/js/ssr.tsx hands to Ziggy before rendering.
Spatie Laravel Data
Spatie Laravel Data is included to help you create data transfer objects (DTOs) in a simple and elegant way.
Laravel Person Name
A Unicode-safe validation rule for first and last names, from any language or culture.
use Webminty\PersonName\Rules\ValidPersonName; $request->validate([ 'first_name' => ['required', new ValidPersonName], 'last_name' => ['required', new ValidPersonName], ]);
Frontend
React
React 19 with TypeScript 7. Entry point is resources/js/app.tsx with SSR support via resources/js/ssr.tsx.
Shadcn UI
Pre-configured with components.json pointing to resources/js/components/ui/. Includes all required dependencies (Radix UI, class-variance-authority, clsx, tailwind-merge, Lucide icons).
Tailwind CSS
Tailwind CSS v4 with the Vite plugin. Themed with the Webminty brand: a mint color scale, warm stone neutrals, and Plus Jakarta Sans / JetBrains Mono typefaces loaded from Google Fonts.
Colors are semantic tokens (--background, --primary, --card, ...) defined as CSS variables in resources/css/app.css, with a .dark block for dark mode. Add the dark class to <html> to switch themes.
Debugging
Spatie Laravel Ray
Spatie Laravel Ray is included to help you debug your Laravel applications with ease.
Testing
Pest
Pest 5 is included to help you write expressive and elegant tests for your Laravel applications.
Spatie Pest Expectations
Pest Plugin - Faker
Pest Plugin - Laravel
Pest Plugin - Type Coverage
Larastan
Larastan is included to help you catch type errors in your Laravel applications using PHPStan.
Pint
Pint is included to help you format your Laravel code according to the Webminty coding standard.
Laravel Rector
Rector is included to help you refactor and upgrade your Laravel codebase automatically.
Formatting
Prettier
Prettier is included to help you format your code consistently across your project.
Prettier Plugin - Tailwind CSS
Prettier Plugin - Blade
Additional Configurations
Changes to the default Laravel files are included in this starter kit to improve performance and developer experience.
app/Providers/AppServiceProvider.php
Model::preventLazyLoading(); if ($this->app->isProduction()) { Model::handleLazyLoadingViolationUsing(function ($model, $relation) { $class = get_class($model); info("Attempted to lazy load [{$relation}] on model [{$class}]."); }); DB::prohibitDestructiveCommands(); } else { Model::preventAccessingMissingAttributes(); Model::preventSilentlyDiscardingAttributes(); Model::shouldBeStrict(); } Vite::usePrefetchStrategy('aggressive');
Thank you Webminty Team