ngiraud / laravel-starter
An opinionated starter to launch after creating a fresh Laravel application
Fund package maintenance!
Requires
- php: ^8.4
- illuminate/contracts: ^12.0|^13.0
- laravel/prompts: ^0.3.6
- laravel/sail: ^1.44
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9||^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- nunomaduro/pao: ^1.0
- orchestra/testbench: ^10.0.0||^9.0.0||^8.22.0
- pestphp/pest: ^4.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1||^2.0
- phpstan/phpstan-phpunit: ^1.3||^2.0
- phpunit/phpunit: ^12.5.20
- rector/rector: ^2.1
- dev-main
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-dependabot/composer/orchestra/testbench-tw-11.1.0
- dev-dependabot/github_actions/actions/cache-5
- dev-dependabot/github_actions/actions/checkout-6
This package is auto-updated.
Last update: 2026-04-20 08:56:41 UTC
README
This package automates the complete setup of a fresh Laravel application: installing and configuring your preferred packages and tools, with full Git management throughout the process.
It configures Docker Compose with Laravel Sail, installs your preferred packages (Telescope, Horizon, Filament, etc.), sets up Composer and npm scripts for development, publishes configuration files and stubs, configures your environment (locale, database, services), and automatically creates semantic Git commits for each step.
Installation
composer require ngiraud/laravel-starter --dev
Usage
Full setup
Run the interactive installer on a fresh Laravel application:
php artisan starter:install
It will guide you through the complete setup and delegate to the sub-commands below. At the end it offers to remove itself from your project.
Individual commands
Each step is also available as a standalone command, usable at any time after initial setup:
| Command | Description |
|---|---|
starter:init |
git init + .env configuration (name, locale, database) |
starter:add {package} |
Install a package + post-install steps + commit |
starter:remove {package} |
Remove a package + cleanup + commit |
starter:publish |
Publish config stubs, scripts, GitHub Actions, and opt-in extras |
starter:finalize |
Run composer lint (Rector + Pint) and commit |
Available packages
| Key | Package | Default |
|---|---|---|
telescope |
Laravel Telescope | ✓ |
horizon |
Laravel Horizon | — |
filament |
Filament | — |
larastan |
Larastan | ✓ |
rector |
Rector (Laravel) | ✓ |
backup |
Laravel Backup | — |
paratest |
Paratest | — |
nightwatch |
Laravel Nightwatch | — |
What gets published
starter:publish sets up the following, with opt-in prompts for extras:
- Config files:
pint.json,AppServiceProvider.php,TestCase.php - Routes:
web-local.php(local-only routes, auto-required inweb.php) - GitHub Actions: tests, lint, phpstan (if Larastan), rector (if Rector)
- Language files: French translations if locale is
fr - Composer scripts:
dev,lint,test,test:lint,test:types,test:all - npm scripts:
dev,lint,test:lint .gitignore: adds/.claudeentry- AI guidelines (opt-in):
.ai/guidelines/stubs for testing and conventions - Action design pattern (opt-in):
Action,Fakeable,FakeAction,FakeableTest,MakeActionCommand+make:actionstub - EnhanceEnum trait (opt-in):
app/Enums/Concerns/EnhanceEnum.php
Development scripts
After running the installer, these scripts are available in your project:
composer dev # Start all dev services concurrently (logs, vite, queue) composer lint # Rector + Pint + ESLint composer test # Run the test suite composer test:lint # Dry-run lint (CI) composer test:types # PHPStan (if Larastan installed) composer test:all # Full CI suite
Testing
composer test
Local development
Two helper scripts are provided to wire up the package as a local path repository in a target project:
# Add path repo + minimum-stability: dev to the project's composer.json ./scripts/setup-local.sh my-laravel-project # Mount the package into the project's Sail compose file ./scripts/setup-sail.sh my-laravel-project
Both scripts resolve paths automatically relative to their own location (assumes projects live alongside laravel-packages/ in the same parent directory).
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.