msamgan/laravel-env-keys-checker
Laravel Env Keys Checker compares your .env and .env.example files to spot missing or extra environment variables. Run a simple Artisan command to keep configs in sync and catch deployment issues before they happen.
What this release is: v2.0.0 is a major-version bump whose only substantive changes are (a) a Dependabot bump of dependabot/fetch-metadata (CI tooling, no runtime effect) and (b) Laravel 13.x compatibility contributed by @laravel-shift. There are no new features, no documented deprecations, and no stated bug fixes.
Architecture fit: Low-coupling, single-purpose developer/CI tooling. Best modelled as a require-dev dependency that adds an Artisan command and no request-path footprint. It should not enter the production runtime dependency graph, and it should not be on the critical path of a deploy — it is a pre-flight validation gate. Assumption to confirm: the package's core behaviour is comparing environment keys referenced by the application/config against .env / .env.example; verify the exact command surface and exit-code semantics before designing a gate around it.
Integration feasibility: High. Standard Composer install, Laravel package auto-discovery, likely an optionally publishable config file. Realistic effort is well under a day for a single Laravel application, most of which is deciding where the check belongs in CI rather than wiring it up.
Technical risk:
@laravel-shift automation is a reliable signal of framework compatibility, but confirm Laravel 13 is a released target you actually run before letting this drive your upgrade decision.Key questions for the maintainer / for verification:
composer.json constraints in v2.0.0 for laravel/framework, illuminate/*, and php?env($var) in loops, config-cache output), or only static references?Stack fit: Suitable for any Laravel estate, but the value is proportional to the number of applications and environments. Highest leverage where multiple services share .env conventions, where config is frequently edited, or where "works locally, blank in staging" incidents have a recurring cause.
Migration path: Treat the major bump as two separate decisions — adopt the package and adopt v2.0.0.
^1.9.1 for now; the functional capability is unchanged, so deferring the major version costs nothing.Compatibility: Do not assume — read the released composer.json before committing to a version. Record the supported Laravel/PHP matrix in your dependency register so the next major bump is a lookup rather than an investigation.
Sequencing:
composer install, run the command) to observe real output and false positives.Maintenance: Minimal. There is no runtime surface to patch, no database or infrastructure footprint, and no configuration drift beyond the version constraint itself. Automation (Dependabot) means update PRs will arrive on their own; the ongoing cost is review attention, not engineering time.
Support: Community open-source with no SLA and effectively one active maintainer. Acceptable for a dev-only quality gate; not acceptable as a dependency of anything a customer experiences. Keep the blast radius at CI by never installing it in production.
Scaling: Negligible. Execution is build-time and per-application, so cost scales linearly with repository count and is dwarfed by any test suite. There is no runtime scaling consideration at all. The only scaling concern is governance: N repositories means N places to bump the version and N chances for the gate to be disabled quietly.
Failure modes to design against:
Ramp-up: Essentially none. A Laravel developer understands the problem domain intuitively and the command is self-describing. The real ramp-up cost is organisational, not technical: agreeing the gate's blocking/non-blocking status, its position in the pipeline, and who owns remediation when it fires. Budget a short team conversation for that, and near-zero for the tooling itself.
TPM recommendation: Adopt, scoped as a dev-only CI quality gate, with a verify-then-pilot-then-promote rollout. The v2.0.0 change itself is low-risk and low-value — the meaningful decision is introducing the capability, not the version number. Gate adoption on confirming the Laravel/PHP floor and on a two-sprint warn-only trial to measure false-positive rate.
How can I help you explore Laravel packages today?