Skip to main content
← All comparisons
Crontinel vs Laravel Forge Heartbeats

Crontinel vs Laravel Forge Heartbeats: When Ping-Based Monitoring Isn't Enough

Laravel Forge includes a built-in feature called Heartbeats. It works by appending an HTTP ping to the end of your scheduled tasks. If the ping does not arrive within the expected window, Forge sends you a notification. Simple, effective, and already included with your Forge subscription.

But ping-based monitoring has a fundamental blind spot: it only tells you that a task ran. It cannot tell you whether the task succeeded.

How Forge Heartbeats Works

Forge generates a unique URL for each scheduled task. You append a curl call to the end of your cron entry:

* * * * * cd /home/forge/app && php artisan schedule:run && curl -s https://forge.laravel.com/heartbeat/xxxx

If Forge does not receive the ping within the configured threshold, it alerts you via email or Slack. That is the entire feature. It answers one question: “Did this task finish executing?”

What Forge Heartbeats Does Not Cover

Forge Heartbeats was designed for simplicity, not depth. It does not track:

These gaps matter most in queue-heavy applications where the scheduler is only one piece of the puzzle.

Feature Comparison

FeatureForge HeartbeatsCrontinel
Scheduler ping monitoringYes (heartbeat URL)Yes (event listener)
Exit code trackingNoYes
Duration trackingNoYes
Late detectionNoYes
Queue depth monitoringNoYes
Horizon supervisor healthNoYes
Failed job alertsNoYes
Local dashboardNo (Forge dashboard is server management)Yes
MCP serverNoYes
Requires ForgeYesNo
PricingIncluded with Forge ($12/mo per server)Free OSS and Free SaaS plan; paid terms under review

When Forge Heartbeats Is Enough

Forge Heartbeats works well for straightforward setups. If your application has a handful of scheduled tasks, you are already paying for Forge, and you mostly need to know “did the cron fire today,” Heartbeats covers that with zero additional configuration. Credit where it is due: the simplicity is a feature, not a limitation, for many teams.

You probably do not need more than Heartbeats if:

When You Need Crontinel

The calculus changes when your infrastructure depends on queues. If you run Horizon, you need to know whether supervisors are healthy, whether queue depth is growing faster than workers can process, and whether failed jobs are piling up. Forge Heartbeats has no visibility into any of this.

Crontinel becomes the better choice when:

They Can Coexist

You do not have to choose one or the other. If you are on Forge, Heartbeats will keep working alongside Crontinel. Heartbeats provides a lightweight confirmation that cron is firing, while Crontinel handles the deeper observability layer: exit codes, durations, queue health, and Horizon status.

Many teams start with Heartbeats and add Crontinel once their queue infrastructure grows past what ping-based monitoring can cover. The two tools monitor different things at different depths, and running both gives you the broadest safety net with minimal overhead.

Forge Heartbeats answers “did it run?” Crontinel answers “did it work, how long did it take, and is everything else healthy too?”

See also

Try Crontinel free

Install the open-source package in two commands. No account needed to start.

composer require crontinel/laravel
php artisan crontinel:install
Start free