spatie/laravel-flare
Send Laravel errors to Flare. With a valid Flare API key, production errors are tracked and you're notified when they happen. Works with Laravel 11+ on PHP 8.2+, and pairs with spatie/laravel-ignition for beautiful error pages.
flare log channel that can be added to LOG_STACK to fan out alongside existing targets. That opens a real product decision: do we keep logs in CloudWatch/Datadog and only ship errors, or consolidate logs plus errors into Flare? Per-level filtering (minimal_log_level) lets you ship only warnings and above to control cost and noise.RateSampler and DynamicSampler with rules on route name, route action ([Controller::class, 'method'] tuples), queue name, and queue connection let you make a per-endpoint and per-job sampling decision. max_attribute_size_in_kb (added 3.3.0) caps trace payload size. These are the knobs that turn "observability is expensive" into a configured policy rather than an argument.Consider it when:
Look elsewhere when:
spatie/error-solutions dependency, the AddSolutions middleware, and the related config, along with reportMessage() and friends. If your team's workflow depended on those, this is a regression you must plan around — spatie/laravel-ignition still covers the local developer error page, but that is a different job.spatie/flare-client-php ^3.0, so an old client pin will block you.Also budget for the upgrade path. The changelog shows a fast-moving surface with two config-shape-breaking major releases (2.0.0 replaced the config file; 3.0.0 removed features and rewrote the senders, defaulting to LaravelHttpSender with DaemonSender as an alternative). This is a healthy release cadence — releases continue into 3.3.0 with recent additions like the configuring() hook, route metadata attributes, and Livewire v4 fixes — but it is not a "set it and forget it" dependency. Assign an owner.
For executives — one paragraph: "This is the official integration between our Laravel applications and Flare, a hosted error-tracking service. It replaces 'a customer tells us something broke' with automated alerting the moment an exception or failed job occurs, including the request context needed to reproduce it. The package itself is MIT-licensed and maintained by Spatie, the same team behind much of the Laravel ecosystem's tooling, so there is no bespoke code for us to own. The real commitment is the Flare subscription, which is a recurring cost we should model against support hours and incident downtime rather than against a license fee. It is a buy decision, not a build decision, and it is reversible — our applications keep running without it."
For engineering — the summary:
FLARE_KEY, and production errors are reported. With no key set, Flare disables itself entirely, so non-production environments are safe by default.flare log channel you can add to LOG_STACK to fan out logs alongside existing targets; OpenTelemetry-format log records; traces for requests, jobs, and Livewire components (v3 and v4, including SFC stack traces); first-class handling for Octane, Vapor, and sync queues.minimal_log_level for log verbosity, RateSampler/DynamicSampler with route- and queue-scoped rules for volume, max_attribute_size_in_kb for trace payload ceilings, cookie and session censoring for PII, and request/console attribute providers for custom context. The configuring() hook lets you mutate FlareConfig before boot, so environment-specific policy lives in code, not in .env sprawl.reportMessage() — anyone porting from 2.x needs the upgrade guide, not a composer update. The supported matrix is PHP 8.2+ with Laravel 11.47+/12.42+/13+, plus Laravel 10 as of 3.2.0; confirm against our pins before scheduling the work.How can I help you explore Laravel packages today?