Skip to main content

Debugging Laravel apps with Krater

· 5 min read
Ronald Pereira
Luis Güette
Francismar Suarez
Alexis Fraudita
Wilson Velasco

Hello! Recently, we published and shared our latest great product with the world called Krater, a cross-platform desktop application that can take your debugging and development experience with Laravel to the next level. In this article, I would like to share with you the reasons behind the existence of Krater, what it aims to solve, its benefits, and where it is heading in the future.

We took our first steps with Krater at the beginning of this year, 2023. After the release of the MoonGuard: Filament Plugin and the book "MoonGuard: The Software Creator's Journey", we started envisioning our next steps. If you have been following us since then, you may have noticed that we are a group of developers with a preference for the Laravel ecosystem. It falls short to say that we love Laravel, and this is one of the reasons why we work on these tools and utilities for the community.

krater

Krater was born out of the desire for a more advanced alternative for debugging Laravel applications. We wanted a lightweight, fast, and minimalist application. A personalized and practical tool for developers who need to work with Laravel every day. As PHP application developers, we are passionate about this ecosystem, and we have tried other solutions over time without being fully satisfied. We knew that with Krater, we could achieve and pursue innovation. This drove us to identify the prioritized aspects for a developer when working, compare them with other products, and try to bring together everything vital and important into one product.

With the release of the MoonGuard Plugin and the first experimental release of Larvis, we recognized that Krater conceptually fit perfectly in the same line of products. This pushed us to turn MoonGuard into an ecosystem, where each product has consistency and makes sense within it. One of our ideals is that within the MoonGuard ecosystem, you can find solutions for your Laravel applications, whether it is in a local or production environment.

Before moving on with the rest of the article, it's important to mention that you can experience Krater for yourself with a 15-day trial! Download Krater, start the trial, and live the enhanced debugging experience firsthand.

When discussing Krater, we cannot overlook these characteristics:

  • Lightweight: It takes up little disk space (around 18mb on each operating system).
  • Fast: Its running process consumes low RAM memory (approximately 70mb).
  • Minimalistic: The application has been designed with a focus on simplicity and practicality, displaying the most relevant information to make it intuitive for its users.

That's not all. As developers, we recognize the importance of data management and wanted to bring the value of data persistence to Krater, which means:

  1. All received information is stored locally in a database.
  2. Work between sessions without losing information.

Krater receives, stores, and displays information such as messages, queries, requests, and exceptions from each of the Laravel applications you link through Larvis, a Laravel package that acts as a bridge to send information from your Laravel application to Krater.

Let's briefly review the data that Larvis can send to Krater in its latest release:

Messages

krater-messages

With messages, we can see the information of any variable from any execution point, even from complex places in our app like commands, jobs, listeners, or even Livewire components. Similar to what we do with dd($users), with Larvis you would use larvis($users).

Exceptions

krater-exception

Laravel Ignition plays an excellent role in displaying errors and exceptions in views, but exceptions can occur in places beyond that. In this aspect, Krater is useful for debugging and resolving those errors that are not covered by conventional strategies, such as commands, jobs, or events.

Database Queries

krater-queries

It is quite common and frequent in a Laravel project to optimize queries. No one wants to have an N+1 problem in their application. With Krater, you can quickly detect all your queries and easily identify duplicate queries. If you are concerned about the speed of your queries, you can also check the execution time of each query.

HTTP Requests

krater-requests

When developing a new route or behavior within a controller, it is likely that we encounter status errors like 404, 500, 403, among others. Every request in our application can be recorded inside Krater, you can inspect each request and see its headers, session, and response information. This is a really useful feature because it can help you track errors and validate the request and responses from your app.


We have been working on Krater for a large part of the year, and we are excited to finally release its first stable version. From the Krater development team, we are thrilled to share this product in the Laravel ecosystem.

Our vision for Krater in the future is for it to become your preferred assistant for debugging your next big Laravel project. Krater is a means to find and solve your problems faster, before they become major headaches.

We believe that this is just the beginning of a great journey, and Krater has the potential to become the ultimate debugging tool for Laravel developers. We would love to hear your feedback, suggestions, or even if you have already tried Krater! Join our community on Discord, we would love to hear from you!

You can download and learn more about Krater on its official page. Don't miss out on the 15-day trial!

For the latest updates, breaking news, and important announcements, be sure to follow us on Twitter/X at @moonguard_dev. Stay connected and stay informed about all things MoonGuard.