spatie/laravel-ray
Send debug output from any Laravel app to Ray, Spatie's desktop debugging tool. Inspect HTML, arrays, queries, and Markdown, measure performance, and pause execution—all with the familiar dump-style workflow.
Engineering tooling spend and procurement. spatie/laravel-ray is glue code for a commercial desktop app (Ray from Spatie), not a standalone capability. Adopting it commits the org to per-developer Ray licenses after a trial that caps sessions at 20 messages. A PM should treat this as a line item in the developer-experience budget with a clear seat count, not a free Composer dependency — and decide whether that spend is justified by cycle-time gains versus free alternatives (dump(), Telescope, Xdebug, structured logs).
Standardizing how the team debugs. The package gives one consistent syntax across Laravel, PHP, JavaScript and other ecosystems for inspecting arrays, HTML, queries, mailables, HTTP client calls, views, jobs and exceptions. If the team is fragmented across ad-hoc dd()/var_dump() and log grepping, this is a cheap way to converge on a shared convention — a decision about process consistency, not features.
Build vs. buy for internal debug/observability tooling. Anything internal that streams app state to a local inspector is a candidate for "buy." The changelog shows years of accumulated edge-case handling — query exceptions carrying the failing query, Mail::fake() compatibility, cached-view path handling, Octane compatibility, PHP 8.5 boot-phase fixes, Lumen support. Reproducing that surface area in-house is a poor use of engineering time; the PM decision is to buy the thin package and license the app rather than fund an internal tool.
Whether to invest in AI-assisted development workflows. The README and bundled agent skill describe Ray as a target for AI-generated debug output, including an MCP server so AI can send and interact with output. If the roadmap includes AI pair-programming or agent-driven development, this raises a concrete question: do we want a human-visible, interactive output channel for AI work, or do we keep AI working headless and rely on logs? That is a workflow/roadmap decision with real implications for review quality and trust in generated code.
Debugging depth for specific roadmap items. Concrete, near-term use cases the PM can attach to delivery work rather than abstract "better tooling":
testResponse assertions and the query-builder ray macro during feature-test authoring.Scope and guardrails for instrumentation. Because debug output flows to a local listener over HTTP and is gated by config/env, adopting it implies a policy decision: local-only by default, disabled in staging and production, and no sensitive payloads (PII, credentials, tokens) sent to a desktop app. That policy should be written before rollout, not after an incident.
spatie/ray package or a different tool.For executives — the ask: a small, per-developer tooling purchase that shortens the loop between "something is wrong" and "I know why," on the framework our product runs on. The package itself is free and MIT-licensed; the cost is Ray licenses for the team. Frame it as cycle-time and onboarding investment, not a platform bet: it is trivially reversible, adds no runtime dependency to production, and requires no infrastructure.
For engineering — why it is safe and worth it: a thin, actively maintained Laravel adapter (tracking Laravel 12/13 and current PHP versions) that turns ad-hoc dd()/log-grepping into one consistent, inspectable stream — queries, mailables, outbound HTTP, views, jobs, exceptions, plus timing and execution pausing. Nothing in application code depends on it, so removing it is a one-line revert.
Explicit guardrails to state up front: local development only; disabled outside local environments; a written rule against sending PII, credentials or customer data to the desktop app; and no expectation that this replaces production monitoring. For teams exploring AI-assisted development, note the MCP/agent integration as the reason to evaluate now rather than later — it is the piece most likely to matter in twelve months.
Decision to be made: approve a pilot with a defined seat count and success criteria (e.g., measurable reduction in time-to-diagnose on a sample of bugs, or onboarding time for new Laravel hires), then decide on full rollout at the end of the license period.
How can I help you explore Laravel packages today?