Laravel starter kit with opinionated modern tooling setup.
aronpc/react-starter-kit-auth is a Laravel package for laravel starter kit with opinionated modern tooling setup..
It currently has 1 GitHub stars and 4 downloads on Packagist (latest version v1.2.0).
Install it with composer require aronpc/react-starter-kit-auth.
Discover more Laravel packages by aronpc
or browse all Laravel packages to compare alternatives.
Last updated
A modern, production-ready Laravel starter kit featuring React 19, TypeScript, and Inertia.js with full authentication system. This starter kit provides opinionated modern tooling setup with best practices for rapid application development.
composer.json)# Create a new project using Laravel installer
laravel new my-project --using=aronpc/react-starter-kit-auth
# Start development servers
composer run dev
# Clone the repository
git clone [email protected]:aronpc/react-starter-kit-auth.git
cd react-starter-kit-auth
# Install dependencies
composer install
npm install
# Set up environment
cp .env.example .env
php artisan key:generate
# Run migrations
php artisan migrate
# Start development servers (Laravel, Queue, Logs, Vite)
composer run dev
# Development
composer run dev # Start all dev servers (artisan, queue, pail, vite)
composer run dev:ssr # Start dev servers with SSR support
# Code Quality
composer run fix # Auto-fix code with Rector and Pint
composer run refactor # Run Rector code refactoring
# Testing
composer run test # Run all tests (unit, types, refactor checks)
composer run test:unit # Run Pest unit and feature tests
composer run test:unit:coverage # Run tests with coverage report
composer run test:types # Run PHPStan static analysis
composer run test:refactor # Check Rector refactoring suggestions (dry-run)
composer run test:lint # Check code style with Pint (no changes)
# Direct tool access
./vendor/bin/pint # Format code with Pint
./vendor/bin/phpstan analyse # Run static analysis
./vendor/bin/rector # Run Rector
php artisan test # Run Pest tests
npm run dev # Start Vite dev server with HMR
npm run build # Build for production
npm run build:ssr # Build for production with SSR
# Code Quality
npm run lint # Run ESLint with auto-fix
npm run format # Format code with Prettier
npm run format:check # Check formatting without changes
npm run types # Run TypeScript type checking
This starter kit is built with multi-language support from the ground up:
APP_LOCALE environment variableen)lang/{locale}/// In PHP/Blade
{{ __('messages.welcome', ['name' => $user->name]) }}
// In controllers/models
$message = __('messages.success');
// Pluralization
{{ trans_choice('messages.items', $count) }}
Translation File Structure:
lang/
βββ en/
β βββ auth.php # Authentication messages
β βββ validation.php # Validation messages
β βββ messages.php # General messages
βββ pt_BR/
βββ auth.php
βββ validation.php
βββ messages.php
Important: Never hardcode user-facing text - always use translation keys for proper i18n support.
Key environment variables (see .env.example for full list):
# Application
APP_NAME=Laravel # Application name
APP_ENV=local # Environment (local, production)
APP_KEY= # Generate with: php artisan key:generate
APP_URL=http://localhost # Application URL
APP_LOCALE=pt_BR # Default locale (pt_BR, en, etc.)
# Database
DB_CONNECTION=sqlite # Database type (sqlite, mysql, pgsql)
# For MySQL/PostgreSQL, configure: DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# Session & Cache
SESSION_DRIVER=database # Session storage (database, redis, file)
CACHE_STORE=database # Cache driver (database, redis, file)
QUEUE_CONNECTION=database # Queue driver (database, redis, sync)
# Mail (for auth emails)
MAIL_MAILER=log # Mail driver (log, smtp, mailgun, etc.)
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
# Frontend
VITE_APP_NAME="${APP_NAME}" # Exposed to frontend
For production deployment, ensure you configure proper database, cache, queue, and mail settings.
laravel/framework - Laravel 12 frameworkinertiajs/inertia-laravel - Inertia.js server adapterlaravel/fortify - Authentication backendlaravel/wayfinder - Type-safe routingnunomaduro/essentials - Essential Laravel packagesarchtechx/enums - Enhanced PHP enumsreact & react-dom - React 19@inertiajs/react - Inertia.js React adaptertypescript - TypeScript supportvite - Build tool and dev servertailwindcss - Utility-first CSS@radix-ui/* - Accessible UI componentslucide-react - Icon librarypestphp/pest - Testing frameworklarastan/larastan - Static analysisrector/rector - Code refactoringlaravel/pint - Code formatterlaravel/boost - MCP server for AIlaravel/sail - Docker environmenteslint & prettier - Frontend code qualityβββ app/
β βββ Contracts/ # Interfaces and traits (HasEnumFeatures)
β βββ Http/
β β βββ Controllers/ # Auth, Settings controllers
β β βββ Middleware/ # Inertia, Appearance middleware
β β βββ Requests/ # Form request validation
β βββ Models/ # Eloquent models (User)
β βββ Providers/ # Service providers (Fortify, App)
βββ resources/
β βββ css/
β β βββ app.css # Tailwind CSS entry point
β βββ js/
β β βββ actions/ # Server actions (App, Illuminate, Laravel)
β β βββ components/ # React components and UI library
β β βββ hooks/ # Custom React hooks
β β βββ layouts/ # Page layouts (app, auth, settings)
β β βββ pages/ # Inertia pages (auth, dashboard, settings)
β β βββ routes/ # Wayfinder type-safe routes
β β βββ types/ # TypeScript definitions
β β βββ app.tsx # Main React entry point
β β βββ ssr.tsx # SSR entry point
β βββ views/
β βββ app.blade.php # Root Blade template for Inertia
βββ routes/
β βββ web.php # Application routes
β βββ auth.php # Authentication routes
β βββ console.php # Artisan commands
βββ tests/
β βββ Feature/ # Feature tests
β βββ Unit/ # Unit tests
βββ database/
β βββ migrations/ # Database migrations
β βββ seeders/ # Database seeders
βββ config/ # Laravel configuration files
βββ composer.json # PHP dependencies and scripts
βββ package.json # Node dependencies and scripts
βββ vite.config.ts # Vite build configuration
βββ phpunit.xml # PHPUnit/Pest configuration
βββ phpstan.neon # PHPStan configuration
βββ rector.php # Rector configuration
βββ pint.json # Pint configuration
βββ tsconfig.json # TypeScript configuration
βββ eslint.config.js # ESLint configuration
βββ boost.json # Laravel Boost MCP configuration
Backend:
artisan - Laravel CLI entry pointpublic/index.php - HTTP entry pointFrontend:
resources/js/app.tsx - Client-side React applicationresources/js/ssr.tsx - Server-side rendering entry pointresources/css/app.css - CSS entry point with TailwindThis starter kit includes Laravel Boost, an official Laravel MCP (Model Context Protocol) server that enhances AI assistant capabilities when working with Laravel projects.
MCP server is configured in .mcp.json and boost.json. Laravel Boost is pre-configured and ready to use - no additional setup required.
# MCP server runs via:
php artisan boost:mcp
This starter kit includes comprehensive architecture tests using Pest to enforce code quality and consistency:
var_dump, dd(), or deprecated functionseval(), exec(), shell_exec()App\Enums must be valid enum classesHasEnumFeatures trait for consistencyThese tests run automatically with your test suite and help maintain code quality standards across the project.
# Run only architecture tests
php artisan test --filter=ArchTest
This starter kit includes the ArchTech Enums package with a pre-configured
HasEnumFeatures trait that provides:
All enums in app/Enums should use the HasEnumFeatures trait:
<?php
namespace App\Enums;
use App\Contracts\HasEnumFeatures;
enum Status: string
{
use HasEnumFeatures;
case PENDING = 'pending';
case APPROVED = 'approved';
case REJECTED = 'rejected';
}
Architecture tests ensure all enums follow this convention.
This project is open-sourced software licensed under the MIT license.
This starter kit is based on and inspired by: