package-wizard/installer
Package Wizard Installer provides an interactive CLI wizard for Laravel packages, simplifying installation by handling common setup steps like publishing config and assets, running migrations, and registering service providers.
Architecture fit. Package Wizard Installer targets a narrow, real seam in the Laravel ecosystem: the post-composer require gap where a package's README tells users to publish config, publish assets, run migrations, seed data, and register a provider. The integration surface is a service-provider hook plus terminal prompts, which is architecturally shallow and low-coupling — a package author declares install steps, the installer sequences them. For a TPM this is attractive because it standardizes onboarding DX without touching runtime application code. It is not framework infrastructure; it is developer tooling with a runtime footprint limited to console commands.
Integration feasibility. Low effort to try, moderate effort to trust. It is a single Composer dependency, MIT-licensed (fork-friendly), and additive — no schema changes, no middleware, no request-path impact. The blockers are lifecycle signals, not design: last release 2021-05-25, repository archived, 62 stars, and a 0.25 quality/adoption score. That combination means the package is effectively unmaintained and we would own it on day one. Any integration decision must assume zero upstream fixes.
Technical risk.
laravel/prompts console UX. Its interaction layer almost certainly uses Symfony Console question helpers that have since changed behavior and deprecation posture. Compatible-version ceilings in composer.json are likely to conflict with current projects.--no-interaction path with sensible defaults, this package actively breaks automation.Key questions.
--no-interaction, and are defaults safe for CI?artisan assertion helpers), or is the flow only testable by hand?install command?Stack fit. Reasonable for Laravel 8-era applications; poor fit as a greenfield standard. The package is a developer-experience layer, so it should be scoped to require-dev in package repositories and never installed into production images. It is not a runtime dependency and should not appear in application composer.json requires.
Migration path. Treat this as a pattern to adopt, not a package to adopt. Two viable paths:
laravel/prompts and the publish/migrate/seed steps made idempotent and flag-driven. Cost is measured in days, not weeks, because the surface area is small.php artisan <vendor>:install command using laravel/prompts plus a documented step contract delivers 80% of the value with zero abandonment risk. Most packages only need publish + migrate + a confirmation prompt.Compatibility. Gate any evaluation on a spike: install into the current LTS project, run composer why-not against our PHP and Laravel constraints, then exercise the wizard in both TTY and non-TTY contexts. If Composer refuses to resolve, the decision is closed without further analysis.
Sequencing.
--no-interaction defaults as acceptance criteria.Maintenance. Ownership transfers to us immediately and permanently. Archived means no security patches, no framework compatibility fixes, and no issue triage. Since it is dev-only tooling, the security blast radius is contained, but supply-chain review still applies if we keep the upstream dependency rather than vendor it. Budget a small recurring allowance for framework-upgrade breakage if we fork, and zero if we reimplement.
Support. Developer-facing support burden is real but bounded: onboarding questions, "the wizard hung," "it overwrote my config." Without upstream docs beyond a README, internal documentation and a troubleshooting section become mandatory deliverables, not nice-to-haves.
Scaling. Compute scaling is irrelevant — it runs once per developer per package install. The scaling concern is organizational: every adopting package inherits the same prompt UX and the same failure surface, so a defect in the wizard multiplies across the package portfolio. Conversely, a well-defined step contract scales DX cheaply and consistently.
Failure modes.
Ramp-up. Near zero for developers using the wizard — prompts are self-describing. Non-trivial for package authors, who must learn the step contract and, if we fork, the interaction layer. Estimate half a day per package author and one to two days for whoever owns the fork. The dominant cost is not learning the tool; it is accepting the long-term ownership of an abandoned dependency for a convenience-layer problem.
How can I help you explore Laravel packages today?