photoncms/installer
Photon CMS Installer streamlines setting up Photon CMS in a Laravel application. It walks through the installation workflow, publishing assets, configuring the CMS, and preparing your database so you can get a Photon-powered site running with minimal manual setup.
Architecture fit
photoncms/installer is a provisioning artifact, not a runtime dependency. For a TPM this reframes the entire evaluation: the decision is not "should we add this package," it is "should we adopt Photon CMS, and if so, how do we own its bootstrap contract." The installer is inseparable from the CMS it installs — its config layout, migration set, admin/auth bootstrap, and module conventions. There is no standalone value. Architecturally it belongs in a one-time provisioning step (ephemeral container, CI job, or developer workstation), never in the production require block, and never reachable post-deploy.
Integration feasibility
Feasible only inside the framework generation Photon CMS was written for — Laravel 5.x-era (PHP 7.0–7.2). On a modern Laravel 9/10/11 and PHP 8.1+ baseline, expect Composer dependency resolution to fail first, then a cascade of removed-framework-API failures even if constraints are hand-relaxed. The realistic estimate is a fork-and-repair project, not an install, and that estimate should be socialized before anyone opens a ticket for "just try it." A containerized, time-boxed spike against the target baseline is the cheapest way to convert this risk into evidence.
Technical risk
High, and concentrated:
.env, seed the first admin user, and run migrations. An unauthenticated installer endpoint left reachable post-install is a privilege-escalation path. Verification of route registration and self-disable logic is a mandatory gate, not a nice-to-have..env, config, and storage scaffolding makes re-runs silently clobber environment-specific settings; a failed migration/seed leaves a half-built schema with no rollback.Key questions
php and illuminate/* constraints, and do they resolve under our target baseline?.env/config on re-run?Stack fit
Poor for a modern Laravel baseline; acceptable only for an existing Laravel 5.x-era Photon deployment. For greenfield work the correct disposition is reference-only: read the installer to learn Photon's expected directory layout and bootstrap sequence, then do not add it as a dependency. The TPM's job here is to make "reference-only" an explicit, recorded decision so it isn't quietly reversed by an engineer who finds the package first.
Migration path
require-dev, pin an exact version with a committed composer.lock, run only in an ephemeral container during provisioning, and capture the post-install state as a versioned artifact so the installer is never re-executed against a live environment.make:bootstrap target.Compatibility
Three gates, in order: (1) Composer 2 resolution under our PHP ceiling; (2) Laravel framework API surface; (3) package auto-discovery / service-provider registration. Gate 3 is the usual silent failure — the package installs but its provider never boots, producing a half-configured app. Also confirm assumed database driver (MySQL vs SQLite) and filesystem permissions on storage/ and bootstrap/cache/, which bite in non-root containerized environments.
Sequencing
.env handling.require-dev, pinned, CI-only execution, runbook written, installer excluded from the deploy artifact.Maintenance
Effectively unmaintained upstream. If adopted, budget internal ownership as a recurring line item: fork to a private VCS, track upstream manually, carry the patch burden for every PHP/Laravel bump. Scoping this as "setup work" is the most common planning error; it is ongoing maintenance with no vendor.
Support
No upstream contract, no disclosure process, no triage SLA. Escalation is "we fix it." Tolerable for a one-shot CI bootstrap that never runs in production; not tolerable if it turns out to be required at runtime or during post-deploy provisioning. Confirm which one it is before approval.
Scaling
Scaling impact is negligible and indirect — a one-shot operation measured in provisioning minutes, not request throughput. The scaling question belongs to Photon CMS itself (query patterns, caching, module overhead). Do not let installer evaluation substitute for CMS performance evaluation; separate workstreams, only the latter carries production risk.
Failure modes
.env/config with defaults, silently breaking environment-specific settings.storage//bootstrap/cache in containerized or non-root environments.Ramp-up
Low technical learning curve — one command — but high organizational learning cost, because the knowledge is undocumented and held by whoever ran the spike. Mitigate with a written runbook (exact command sequence, required env vars, expected output, rollback procedure) and a committed post-install artifact so the tool never needs re-running. Plan a multi-day spike for any team unfamiliar with Photon CMS before any commitment.
Recommendation to the review board: do not adopt photoncms/installer as a dependency. Zero dependents, zero community signal, and an incompatible framework generation mean the expected cost of fork-and-maintain exceeds the value of the scaffolding. Treat it as documentation of Photon CMS's bootstrap contract; gate any further investment on a separate, explicit decision to adopt Photon CMS. If onboarding friction for our own Laravel product is a real problem, open a small ticket to build our own installer using this package's sequence as a pattern — with a framework version we control and a maintainer we can page.
How can I help you explore Laravel packages today?