laravel/installer
The official command-line installer for Laravel. Run laravel new to scaffold a fresh application in seconds, choosing from starter kits, authentication options, testing frameworks, and your preferred database. Requires PHP and Composer.
Architecture fit
laravel/installer is not a library you integrate — it is a globally installed Composer CLI (composer global require laravel/installer) built on Symfony Console, exposing laravel new and, since v5.31.0, laravel package. Its job is orchestration: fetch the laravel/laravel skeleton, run composer install, select a starter kit (React/Vue/Livewire/Svelte), run a Node install/build, optionally install Laravel Boost, and emit next-step guidance. Fit is therefore at the developer-environment and platform-tooling layer, not the application runtime. The dependents: 0 figure is expected rather than alarming — nothing requires a CLI tool — but it also confirms there is no embedding path. Any programmatic use means shelling out and parsing output or exit codes.
Integration feasibility — high, but only for a narrow scope. Two changelog items make automation realistic:
--no-interaction TTY attachment for child processes, which is the classic cause of hung CI jobs.--no-node, --no-boost, package-manager selection, --no-interaction) let you constrain the blast radius per environment.The honest read on the opportunity: 35.3 score: the installer adds onboarding DX and starter-kit glue, but almost nothing it does is unavailable via composer create-project laravel/laravel plus your own bootstrap script. Its value is convention and prompt-driven ergonomics, not unique capability.
Technical risk
postinstall" — a signal that this surface has been actively exploited or abused.laravel new (#567). Unpinned use is a moving target.queue:listen timeouts, caret-quoting in Boost version constraints, path handling — a disproportionate share of defects are Windows-specific.Key questions
laravel package for internal package scaffolding, and does that change our monorepo conventions?Stack fit
Target the developer-environment layer: PHP 8.2+ with Composer 2 on host machines, or a devcontainer/dev image that bakes in a pinned installer. Node is optional via --no-node; Bun is supported as a first-class package manager (v5.20.0, bunx equivalent in v5.22.0). If your CI images are Linux-only, most of the Windows-specific defect class disappears — but your developers' laptops will not be.
Migration path Two viable paths, and the choice is strategic rather than technical:
laravel new with a fixed flag set, pin the version, and let it scaffold. Fastest to value; weakest reproducibility.There is no meaningful migration burden either way — the installer leaves no runtime artifact in the resulting application.
Compatibility Version 5.x tracks current Laravel: Laravel 13.x compatibility landed in v5.24.7, PHP 8.5 compatibility in v5.23.1, Symfony 8 constraints allowed in v5.27.0. Pin to an exact 5.x tag per quarter and re-validate on Laravel major/minor releases. Note that the installer's PHP requirement is a floor on developer machines, which will be a support topic wherever multiple PHP versions coexist.
Sequencing
--no-interaction in CI, and captures JSON output.--no-boost default applies.Maintenance Low absolute cost, non-zero ownership. The real ongoing task is changelog review against a pinned version — the release cadence is weekly-ish and includes behavioural fixes that silently change scaffolding output. Budget roughly an hour per month, plus a re-pin and smoke-test on each Laravel minor.
Support Support load sits with developer onboarding, not on-call. Expect recurring tickets on: PHP version mismatch, missing Node/Bun, interactive prompts hanging in non-TTY contexts, and Windows path or stdin failures. Documenting a single canonical command eliminates most of it. No production incident surface exists.
Scaling Trivially scalable — there is no runtime component and no per-request cost. The scaling constraints are mundane: npm/Composer registry throughput and CI minutes when scaffolding is exercised in pipelines. Keep CI scaffolding to a single nightly smoke job rather than per-PR.
Failure modes
--no-interaction.postinstall execution.--no-node.Ramp-up Hours, not days. Any PHP developer can use it immediately; the effort is in the wrapper, the pinning policy, and the starter-kit governance decision — roughly one engineer-week end to end, dominated by the policy conversation rather than the tooling.
How can I help you explore Laravel packages today?