
Ray is a dedicated desktop application designed to centralize and beautify debug output for developers. It belongs to the debugging tools category, targeting programmers who work with PHP, Laravel, JavaScript, and other languages. Instead of sifting through cluttered terminal logs or mixing dump statements with browser output, Ray provides a separate, interactive window where all debug information is clearly presented. The core value lies in its ability to transform raw debug calls into a structured, filterable, and searchable interface, allowing developers to focus on understanding their code without breaking their flow. With the introduction of Ray 3.0, it now also handles AI agent output, making it an essential tool for modern development workflows.
Dump debugging methods like dd() and console.log() are fast and simple, but they have significant drawbacks. Output appears inline, mixing with application code or browser UI, making it hard to track multiple messages or inspect complex objects over time. In terminal-based debugging, messages scroll away quickly, and comparing outputs from different execution points becomes cumbersome. Ray directly addresses these pain points by providing a persistent, non-intrusive window that collects all debug calls. Developers can send strings, arrays, objects, queries, emails, events, and stack traces without worrying about losing context. This separation means that the application remains clean while developers get a comprehensive, uninterrupted view of their debug data, saving time and reducing frustration.
Ray's first major feature group is its rich rendering and multi-language support. When you call ray($variable), the desktop app instantly displays the value in a formatted, expandable view. It supports all primitive types and complex objects, including arrays, collections, and custom classes. For Laravel users, Ray can automatically capture Eloquent queries, mailables, events, and job dispatches without any additional calls. Similarly, it integrates with PHP vanilla code, JavaScript (Vanilla, Vue, React), and even WordPress. This means you can use the same ray() syntax across projects, maintaining a consistent debugging experience. The benefit is clear: developers can inspect even the most intricate data structures in a readable way, rather than reading raw var_dump or console.log outputs.
The second major feature group is the powerful filtering and search capabilities. Ray allows you to attach colors to specific ray calls, enabling visual filtering. The app provides a search bar to instantly locate messages across all sessions. You can filter by message type (e.g., queries, exceptions, logs) or by custom labels you define. This is especially useful when debugging a large codebase where dozens of ray() calls might be active. Instead of manually scrolling through a long list, you can narrow down the view to only the relevant messages. Additionally, Ray archives messages when you clear the screen, so nothing is permanently lost. You can later revisit archived outputs to compare results or diagnose hard-to-reproduce issues, enhancing long-term debugging efficiency.
admin
Thirdly, Ray offers extensive customization and extension options. You can change the application theme to match your personal style, from light to dark modes and beyond. For power users, Ray supports macros – custom functions you can write to automate repetitive tasks or transform output before display. If you work with a language or framework not officially supported, Ray provides an API to create your own client, sending data from any environment. Remote debugging over SSH is another standout feature: you can listen for messages from a server and see them in your local Ray instance. This is invaluable for debugging production-like environments or code running on a remote container. The app also integrates deeply with IDEs, allowing you to jump directly from a dumped file to the exact line in your editor, supporting tools like PhpStorm, VS Code, and others.
Ray works by installing the desktop application on macOS, Windows, or Linux, and then adding the relevant client library to your project. For PHP, you simply require the Spatie Ray package and use the ray() helper function. Data is sent to the app over a local connection, appearing instantly. For JavaScript apps, you import the Ray client and call ray() similarly. The app maintains a live stream of messages, each with a timestamp, origin file, and line number. You can pause the stream to freeze the current state, measure execution time between two ray() calls, or let Ray automatically capture framework events like SQL queries and exceptions without manual calls. This seamless setup means you can start debugging within minutes, regardless of your tech stack.
Concrete use cases for Ray include debugging a Laravel application’s database queries: by adding a ray()->showQueries() call, you see every SQL query executed in real-time with parameters. Another scenario involves inspecting AI-generated content – with Ray 3.0, you can have an AI agent output HTML components or Mermaid diagrams directly into the app, rendered interactively. When working on a remote server, you can enable remote debugging and push log messages over SSH to your local Ray window, allowing you to debug production issues safely. For performance tuning, use the pause and measure feature to time code blocks without adding print statements. The archive capability lets you save a session and later compare outputs after code changes, making regression debugging more systematic.
Ray is designed for PHP, Laravel, and JavaScript developers, including those working with Vue, React, and WordPress. It runs on macOS (ARM and Intel), Windows, and Linux, ensuring a consistent workflow across operating systems. The license costs $49 USD per year, managed through Spatie, with a free trial allowing up to 20 messages per session. Licenses purchased before Ray 3 remain valid. The target audience includes backend and full-stack developers who already rely on dump debugging but want a more organized approach, as well as AI agent developers who need to inspect generated output in a structured viewer. Ray transforms the ad-hoc dump() habit into a professional, interactive debugging experience, ultimately saving time and making code exploration more enjoyable.
Ray is built for web and backend developers who actively use dump debugging (dd(), console.log, var_dump) and want a more organized, interactive environment. It specifically benefits PHP and Laravel developers, but also serves JavaScript (Vanilla, Vue, React), WordPress, and full-stack programmers. AI agent developers who need to visualize AI-generated outputs (HTML, Mermaid, ERD diagrams) will find Ray 3.0 indispensable. The tool is ideal for individual developers, small teams, and agencies that value a clean debugging workflow across macOS, Windows, and Linux. Anyone who finds raw terminal output limiting or who frequently switches between frameworks will appreciate Ray's consistent syntax and powerful filtering.