The ultimate mise en place for your next Laravel + Svelte project π
- π Laravel 12 - Latest PHP framework with modern features
- π§ PHP 8.4 - Latest PHP with property hooks and performance improvements
- π‘οΈ Inertia.js 2.0 - Modern monolith approach with SPA feel
- π£οΈ Laravel Wayfinder - Type-safe routing for Laravel + TypeScript
- π Svelte 5 - Revolutionary frontend framework with runes
- π¨ TailwindCSS v4 - Utility-first CSS with latest features
- π¨ shadcn-svelte - Beautiful, accessible component library
- π TypeScript - Type safety and enhanced developer experience
- π§ͺ Pest PHP - Elegant PHP testing framework
- π PHPStan - Static analysis for PHP (Level 6)
- β¨ Laravel Pint - Opinionated PHP code style fixer
- π Rector - Automated code upgrades and refactoring
- π ESLint - JavaScript/TypeScript linting with Antfu config
...and more!
# Clone the repository
git clone https://github.com/n00ki/larastart.git my-app
cd my-app
# Install PHP dependencies
composer install
# Install Node.js dependencies
bun install
# Setup environment variables
cp .env.example .env
# Edit .env with your configuration
# Generate application key
php artisan key:generate
# Setup database
touch database/database.sqlite
php artisan migrate
# Start development environment
composer dev# Standard development (all services)
composer dev
# Development with SSR
composer dev:ssr
# Check format & linting
composer lint
# Format and Lint code
composer lint:fix
# Generate IDE helpers
composer annotate
# Run tests
composer testapp/
βββ Actions/ # Business logic (Action pattern)
β βββ Auth/ # Authentication actions
β βββ User/ # User domain actions (profile, password, account)
βββ Enums/ # Enum classes
βββ Http/
β βββ Controllers/ # Thin controllers (delegate to Actions)
β βββ Requests/ # Form validation with custom messages
β βββ Middleware/ # Custom middleware
βββ Jobs/ # Queue jobs
βββ Models/ # Eloquent models with typed properties
βββ Policies/ # Authorization logic
βββ Providers/ # Service providers
βββ Services/ # Service classes
resources/
βββ css/
β βββ app.css # Global CSS
βββ js/
βββ actions/ # Wayfinder-generated actions
βββ components/ # Svelte components
β βββ ui/ # shadcn-svelte UI components
βββ hooks/ # Svelte hooks and utilities
βββ layouts/ # Page layouts (auth, app, settings)
βββ lib/ # Utility functions
βββ pages/ # Inertia.js pages
βββ routes/ # Wayfinder-generated routes
βββ types/ # TypeScript type definitions
βββ wayfinder/ # Wayfinder (automatically generated)
βββ app.ts # Main entry point
βββ ssr.ts # Server-side rendering entry point
tests/
βββ Browser/ # Browser tests (end-to-end)
βββ Feature/ # Feature tests
βββ Unit/
βββ Actions/ # Business logic
βββ Models/ # Model behavior
βββ Requests/ # Request validation
βββ Policies/ # Authorization logic
βββ Jobs/ # Queue jobs
βββ Services/ # Service classes
- No Abstract Controllers: Composition over inheritance
- Action Pattern: Single responsibility for business logic
- Request Validation: Centralized form validation with custom messages
- Type Safety: End-to-end type safety from PHP to TypeScript
# Run all tests
composer test
# Run specific test suites
composer test:unit # Unit tests only
composer test:feature # Feature tests only
composer test:browser # Browser tests only
composer test:types # PHPStan static analysis
composer test:type-coverage # 100% type coverage verification
composer test:all # All tests with coverageHuman reference documentation is available in the /docs folder:
- Documentation Index - Quick reference and overview
- Architecture Decisions - Why we chose certain patterns
This project uses Laravel Boost for AI guidance:
- Laravel/Inertia/Pest/Wayfinder: Automatically detected and provided by Laravel Boost
- Svelte 5: Use the Svelte MCP server for up-to-date documentation
- Project-specific rules: See
.ai/guidelines/directory
After updating packages, run php artisan boost:update to refresh AI guidelines.
Contributions are welcome! Please review the documentation in /docs and feel free to submit a Pull Request.
Special thanks to all incredible contributors to the open-source community!
Built with β€οΈ for the Laravel and Svelte communities
