The Self Update has arrived at Krater along with Explain Queries to debug your project's database queries in greater detail!
MoonGuard Filament Plugin Release 1.1.0
Looking to improve the user experience of MoonGuard Filament Plugin, we realized that the only way to know when a site is under maintenance is by reviewing its configuration, which motivated us to add an indicator in the "sites stats" of the dashboard, we also contemplated that there was no mechanism that would allow us to eliminate very old exceptions in the database, those that occurred a long time ago and that we could consider as irrelevant information.
In this article we will explore how we add the functionality.
Adding maintenance indicator
Normally we use these site stats to visualize the uptime, ssl-certificate and number of exceptions that our sites have, so we had the idea to improve this by adding an indicator of when the sites are under maintenance.
To achieve this, we update our Filament widget site-stats-widget.blade.php
by adding a conditional
that is executed when there is a date of the down_for_maintenance_at
property of the site
model.
We also updated the widget components uptime-list-item.blade.php
, performance-list-item.blade.php
and certificate-list-
item.blade.php
so that they are not activated when in maintenance in
order not to confuse us and improve the user experience.
The final result was the following.
These small details are what polish and improve the user experience using MoonGuard.
If you want to see more detailed code you can see the PR on Github.
Add command to clean exceptions
We have a productive MoonGuard in which we have been testing its functionalities for the last 2-3 months with real projects and we realized that we needed a way to clean (automatically) very old exceptions that were no longer relevant, so we decided to create a new command and schedule it in the server scheduler to run periodically.
We created the command DeleteOldExceptionCommand
, where all those exceptions that are older
than the time specified in the MoonGuard configuration are deleted periodically:
class Kernel extends ConsoleKernel
{
protected function schedule(Schedule $schedule)
{
$schedule->command(DeleteOldExceptionCommand::class)->everyMinute();
}
//...
}
This command works similar to the other MoonGuard commands (The CheckUptimeCommand
and CheckSslCertificateCommand
) you can schedule the execution of this command or use the
MoonGuardCommandsScheduler
if you want to schedule these three commands:
protected function schedule(Schedule $schedule): void
{
MoonGuardCommandsScheduler::scheduleMoonGuardCommands(
$schedule,
'* * * * *', // <-- Uptime Check Cron
'* * * * *', //<-- SSL Certificate Check Cron
'* * * * *' //<-- [Optional] Delete Exceptions Cron
);
}
For more information on programming these commands you can visit the MoonGuard documentation.
You can also read in detail the related changes in this PR on GitHub.
If you want to learn more about MoonGuard Filament Plugin, we invite you to read our book MoonGuard: The Software Creator's Journey V2 where we talk in detail about how we created each of the MoonGuard features as a Filament v3 plugin.
If you want to learn more about MoonGuard you can visit the page, follow us on Twitter/X and join our discord community for more information.
MoonGuard Filament Plugin release 1.0.9
Since the last release of the MoonGuard Filament Plugin, we have been updating our tool to make it more useful for Laravel developers.
On this occasion, we realized within MoonGuard's internal Slack channel that we were not receiving notifications for exceptions from different team projects, and we were also receiving duplicate notifications for uptime and SSL-certificate.
In this post, we want to tell you how we solved these issues and what we learned.
Slack Notifiable in MoonGuard Filament Plugin
In previous versions of the MoonGuard Filament Plugin, the team used Slack notifications to monitor different internal applications and test features of the MoonGuard package. However, these notifications were configured to be sent repeatedly to the same channel for each registered user, which presented a problem.
Command Palette comes to Krater - Release 1.3.0
Discover the latest updates from Krater to improve your user experience!
We have released a series of enhancements that will allow you to make the most of its functionality. Here are the key features:
Why Golang instead of Rust to develop the Krater desktop app
Hello! If you have been following our articles, you may remember reading that Krater was being developed with Rust using Tauri. However, this is no longer the case because a few months ago we made the decision to migrate the entire project to Wails (Golang). In this article, we will discuss our experience and why we made such a risky decision to migrate an entire application from one language to another.
Debugging Laravel apps with Krater
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.
The MoonGuard Ecosystem
We have been working on this for months and now we are excited to introduce the MoonGuard ecosystem, a stack of tools designed to improve your development experience in local and monitor your Laravel applications in production.
How to Inject Dynamic Content in a Laravel Blog using Spatie Laravel Markdown Package and Livewire Components - A Step-by-Step Guide
Are you looking to take your Laravel blog to the next level by injecting dynamic content? Do you want to make your code more flexible and reusable? Look no further! In this step-by-step guide, we'll show you how to use the powerful combination of the Spatie Laravel Markdown package and Livewire components to render custom Livewire components in markdown for your Laravel project.
How to use local SQLite database with Tauri and Rust
Digital assistants are becoming increasingly popular as people seek more efficient ways to manage their tasks and streamline their daily routines. Orion is a desktop app that offers users the ability to create multiple assistants with specific goals, powered by chatGPT technology.
ChatGPT is a natural language processing model that enables computers to understand and respond to human language. With Orion, you can create assistants that are capable of helping you with anything you need, based on the goals you've defined for them.
One of Orion's key features is its local SQLite database, which stores the chat history for each assistant and allows you to easily organize your conversations by assistant. This database offers faster access to data and better performance, making it an ideal choice for Orion.