pa-tmprod/ignition
Ignition is a beautiful, customizable error page for Laravel and PHP applications. It turns exceptions into detailed, readable reports with stack traces, source code snippets, request context, and suggested solutions, helping developers diagnose and fix failures faster.
Architecture fit. Ignition is a development-only error renderer for Laravel. It registers through package auto-discovery (Facade\Ignition\IgnitionServiceProvider), hooks the framework's exception handler in place of Whoops, and renders a Blade-based error page with stack frames, request context, query bindings, and pluggable "solution providers." It is a diagnostics/presentation layer — no business logic, no runtime dependency surface in production. That makes its architectural footprint small but also means it earns its place only on developer machines and in CI debugging, never in a customer-facing runtime. Note that facade/ignition upstream is archived and superseded by spatie/ignition plus Laravel 9+'s built-in handler, so the real architectural question is not "how do we integrate this" but "why is this still in the dependency graph."
Integration feasibility. Mechanically trivial: composer require --dev, config published via the service provider's ignition-config tag, APP_DEBUG=true locally. No code changes, no service wiring. The friction is entirely in provenance and version constraints: pa-tmprod/ignition is a non-canonical re-publish of an upstream that stopped shipping fixes in January 2023.
Technical risk. High, concentrated in three areas:
APP_DEBUG away from dumping environment variables, credentials, and session data to an unauthenticated user. The failure is silent until it is an incident.Key questions.
APP_DEBUG=false enforced by CI and by infrastructure policy, not just by .env convention?pa-tmprod/ignition — verified git remote, Packagist metadata, signed tags? Who patches it when the next advisory lands?facade/ignition at a patched pin, or spatie/ignition where the framework version allows?Given a score of 16.15 and an opportunity score of 1.14, this is not a package to invest in — it is a legacy artifact to contain and retire.
Stack fit. Targets Laravel 6/7/8 with PHP 7.2.5–8.1. It conflicts with laravel/framework ≥9, which ships its own handler, and it is mutually exclusive with spatie/ignition. Confirm the application is not already on the successor package before touching Composer.
Migration path. Three viable routes, in order of preference:
facade/ignition at a patched version (≥2.5.2, realistically 2.17.x) or move to spatie/ignition with the Laravel bridge. Never install the fork to get the same code.Compatibility. Audit for whoops coexistence, Octane safety (Ignition carries static state that is unfriendly to long-lived workers), PHPUnit/CI environments where error pages are asserted, and any other exception renderer already registered.
Sequencing.
composer.lock and confirm whether the package is direct or transitive and dev-only.composer audit plus a SCA pass specifically for CVE-2021-3129 and later Ignition advisories.APP_DEBUG is false in every non-local environment.Maintenance. Upstream is archived, so there are no upstream fixes and no security releases to consume. Every future advisory becomes our patch to write. Treat the package as unmaintained in the dependency register and give it a named owner plus a retirement date.
Support. No vendor, no SLA, no support contract — GitHub issues and community channels only. Escalation for a broken error page is low severity; escalation for the RCE is a security incident with developer-workstation scope. Those two need different runbooks.
Scaling. Runtime cost is effectively zero because it should never execute in production. The only scaling concern is the pathological case: if APP_DEBUG is ever true in a live environment, every failed request renders a heavy diagnostic page and leaks internals to whoever triggered it.
Failure modes.
.env values, DB credentials, and request payloads.Ramp-up. Developer onboarding is roughly an hour — install, publish config, confirm auto-discovery. The governance ramp-up is the real cost: a written policy that error-page packages are require-dev only, a CI gate running composer audit and an APP_DEBUG assertion, and a review rule that non-canonical vendor namespaces require explicit security sign-off. Without that, the package will be re-added by the next developer who wants nicer stack traces.
How can I help you explore Laravel packages today?