alt-three/bugsnag
Bugsnag for Laravel integrates the Bugsnag error monitoring service into your application, automatically capturing and reporting exceptions with context so you can track, triage, and fix issues faster. Includes configurable notification and filtering options.
Architecture fit. alt-three/bugsnag is a thin adapter, not a platform component. It registers a Laravel service provider, binds the Bugsnag PHP notifier into the container, exposes a facade, publishes a config file, and wires into the framework's exception handler report() path. It owns no data, no domain logic, and no persistence — roughly a few hundred lines of glue. Architecturally it is disposable by design, which is the one thing in its favour: replacing it is a config-and-provider swap, not a refactor.
Fit against a modern estate is nil. It targets Laravel 5.0–5.4 on PHP 5.5–7.0. Laravel 5.x left security support in 2019; PHP 5.6 and 7.0 are long past end-of-life. There is no scenario in which this package is the right architectural choice for anything we would start today.
Integration feasibility. Composer-level feasibility is poor. The manifest pins illuminate/support to the 5.x line and the Bugsnag PHP notifier to the v2 series. On Laravel 6+ dependency resolution will either fail outright or require --ignore-platform-reqs, which converts a clean install problem into a runtime landmine. The only environment where it installs cleanly is one we should not be running.
Technical risk. This is the decisive section, and the risk is concentrated, not diffuse:
Key questions.
Recommendation: do not install this package. Its sole legitimate use is as a reference for how the exception-handler hook is wired when we migrate the target application onto a supported notifier. That is a half-day of reading, not an integration.
Stack fit. The supported path is the vendor's own bugsnag/bugsnag-laravel package, which superseded this bridge and is actively maintained. It occupies the same architectural slot — service provider, facade, config, handler hook — so the conceptual migration is trivial and the operational migration is the real work.
Migration path. Two distinct cases:
bugsnag-laravel release that supports Laravel 5.x — accepting that it too is out of support — or drop the Laravel bridge entirely and call the Bugsnag PHP notifier directly from App\Exceptions\Handler::report(). A direct notifier call is five lines, has no framework coupling, and removes an entire dependency from the blast radius. This is the pragmatic holding position while the framework upgrade is funded.Compatibility. Build an explicit support matrix before committing: application Laravel version × PHP version × notifier major version × vendor support status. The matrix should be a deliverable, not an assumption, because the vendor's supported-versions documentation changes and our answer will be stale within a year. Treat any cell marked "community-supported" or "unsupported" as a tracked risk with an owner.
Sequencing.
alt-three/bugsnag from the manifest and grep the codebase for facade usages that need repointing.Maintenance. Effectively infinite maintenance debt with zero maintenance capacity. An archived repository cannot receive a patch, and the freeze propagates to every transitive dependency. The true cost is not the package's footprint — it is the standing obligation to manually track vulnerabilities in code nobody owns.
Support. There is no upstream, no maintainer, and no community. Any incident involving this bridge is diagnosed entirely from internal knowledge, and if the one engineer who understands the wiring leaves, the knowledge leaves. This package also tends to survive precisely because it is invisible — it sits in a manifest, generates no tickets, and is discovered only during an incident or an audit.
Scaling. Two dimensions, neither about throughput:
shouldReport rules are a cost control, not a nicety, and should be tuned before production enablement.Failure modes.
composer install either fails or succeeds only via platform-requirement overrides, producing an environment that differs from the manifest — the classic precondition for "works on my machine."Ramp-up. Engineer ramp-up is genuinely trivial: one provider, one config file, one facade. That low cost is exactly the trap. The decision looks cheap because the integration is cheap, while the lifecycle cost — unsupported runtime, unpatched dependencies, no security response, no owner — is deferred and invisible. A TPM should reframe the question from "should we use this package?" (no) to "what is our error-monitoring standard, and what is the funded plan to get this application onto a supported runtime?" The deprecation is a useful forcing function for both answers.
How can I help you explore Laravel packages today?