Code review at scale is broken. Here’s how Augment Code is fixing it.

Fire Tower: Application & Config Monitoring

Last updated on by

Fire Tower: Application & Config Monitoring image

In a perfect world all our side projects, dev sites, customer systems, and other Laravel applications would be up to date running on Laravel 12, PHP 8.4, and the latest version of all the packages we love. We’d also have applications that run perfectly, always have the external ETL processes provide the correct data, and never forget to set a variable in our .env file.

Unfortunately, most of us aren’t that lucky.

Fire Tower provides an easy to use Laravel package that plugs into your Laravel application and monitors crucial information using our expanding checks and version information. By default, Fire Tower will check to see if you’re running the latest version of Laravel, PHP, verify you don’t have debug mode on in Production, and even let you know if you forgot to setup your Mail config for those password reset emails.

It doesn’t just stop there. Fire Tower lets you build your own bespoke checks. Does your application need to ensure a specific piece of data is within a certain range? Do you need to ensure a certain number of rows exist in a column? Do you need to check the latest created_at date on a table to make sure your ETL process ran? All these can easily be created and used with Fire Tower.

Use Cases

The Hobbyist

If you’re like me, you have a bunch of small apps that you’ve built to do different things and they don’t always get the attention they deserve. Sure, the last one you put out is running Laravel 11 but that one you built a few years ago? Did you upgrade it to 10 yet?

Or, are you also like me and have a bunch Statamic websites, or custom applications, you’ve built for clients that might be a bit behind on updates?

Fire Tower lets you quickly see the specific composer package version each of your applications are running. Quickly know which apps need some TLC, and work towards getting them upgraded.

The Agency

Years ago I helped develop a Laravel package that was 99% of a Laravel application. It was really only deployed as a package to help facilitate easier updates and provide some flexibility as needed with the individual Laravel applications. Over the course of a few years we realized that keeping previous clients up to date with the newest version was a problem. We started trying to keep a spreadsheet, and do other things to keep it straight.

A product like Fire Tower back then would’ve saved us a ton of time and energy. To select specific packages to show on the dashboard just go to your team settings page and choose which focused packages you want.

Pricing

Fire Tower has two pricing options, one for users with only a few applications to monitor and one for advanced users, or agencies, that have more than five applications they want to monitor. The Pro plan also provides an advanced interface for managing applications with multiple servers.

Get 20% off your first month by using the coupon code LARAVELNEWS. This coupon is valid until midnight on Feb 25, 2025.

Setup

Installation

To get started, subscribe to Fire Tower, and install the Fire Tower package into your application:

composer require krakero/firetower

The next step is to run the installer:

php artisan firetower:install

The installer will publish the service provider and config file needed.

Next, we create an application and put our account and application keys into our .env file.

FIRETOWER_ACCOUNT_KEY="laravel-news-4ee4-838a-250aa0fb17f0"
FIRETOWER_APPLICATION_KEY="fire-tower-4181-936f-6f0f3f754ca3"

Once you have all that setup you’re ready to send your report:

php artisan firetower:report

We recommend scheduling the command to run once a week. View our docs for more information on setting this up.

Custom Checks

We have a artisan command to scaffold a check for you:

php artisan make:firetower-check

It will prompt you for a name, and will generate the following file:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
 
class EnsureNightlyDataLoadCheck extends Check
{
public string $name = 'My New Check';
 
public string $description = 'This checks that important data';
 
public function handle(): string
{
 
$this->pass();
 
// Note: This data is stored on the firetower servers.
// PLEASE DO NOT SEND ANY SENSITIVE DATA.
$this->data([
'my_variable' => 8675309
]);
 
return 'Success';
}
}

We’ll make some quick updates to our default check to send over relevant data:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
use App\Models\Order;
 
class EnsureNightlyDataLoadCheck extends Check
{
public string $name = 'Nightly ETL Check';
 
public string $description = 'Validates that the latest daily sales values made it into the application.';
 
public function handle(): string
{
$order = Order::latest()->get();
 
if ($order->created_at > now()->subDay()) {
$this->pass();
 
$this->data([
'newest_order_date' => $order->created_at
]);
 
return 'PASS';
} else {
$this->fail();
 
return 'FAIL';
}
}
}

We’ll then need to add our check to the FireTowerServiceProvider.php file:

<?php
 
namespace App\Providers;
 
use App\Checks\EnsureNightlyDataLoadCheck;
//...
 
class FireTowerServiceProvider extends ServiceProvider
{
public function boot()
{
FireTower::checks(function () {
return [
DebugModeInProductionCheck::check(),
LaravelVersionCheck::check(),
PhpVersionCheck::check(),
//MailConfigInProductionCheck::check(),
//StripeKeyCheck::check()
EnsureNightlyDataLoadCheck::check(),
];
});
}
}

To learn more:

Vince Mitchell photo

Creator of Fire Tower and many other smaller projects. Developing for the web for over 20 years.

Filed in:
Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.

image
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review
Bacancy logo

Bacancy

Supercharge your project with a seasoned Laravel developer with 4-6 years of experience for just $3200/month. Get 160 hours of dedicated expertise & a risk-free 15-day trial. Schedule a call now!

Bacancy
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
Get expert guidance in a few days with a Laravel code review logo

Get expert guidance in a few days with a Laravel code review

Expert code review! Get clear, practical feedback from two Laravel devs with 10+ years of experience helping teams build better apps.

Get expert guidance in a few days with a Laravel code review
PhpStorm logo

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit

The latest

View all →
Handling Large Datasets with Pagination and Cursors in Laravel MongoDB image

Handling Large Datasets with Pagination and Cursors in Laravel MongoDB

Read article
Driver-Based Architecture in Spatie's Laravel PDF v2 image

Driver-Based Architecture in Spatie's Laravel PDF v2

Read article
Why Your Livewire Dashboard Jumps (And How to Fix It) - Laravel In Practice EP18 image

Why Your Livewire Dashboard Jumps (And How to Fix It) - Laravel In Practice EP18

Read article
Laravel Live UK returns to London on June 18-19, 2026 image

Laravel Live UK returns to London on June 18-19, 2026

Read article
Laravel Related Content: Semantic Relationships Using pgvector image

Laravel Related Content: Semantic Relationships Using pgvector

Read article
Filament v5.2.0 Adds a Callout Component image

Filament v5.2.0 Adds a Callout Component

Read article