Ledge for Laravel
Know when a Laravel app quietly stops working.
Ledge checks the queue, scheduler, Horizon and storage on every Laravel app you look after, and shows the threshold behind every alert.Ledge checks the queue, scheduler, Horizon and storage on every Laravel app.
Free during the beta, then $12.99 per site a month.
3 checks over threshold
Checked 2 min ago- SchedulerDegraded
Last schedule:run 14 min ago · Degraded after 10 min
- HorizonDegraded
Paused · 2 supervisors · Degraded when paused · Unhealthy when stopped
- QueueUnhealthy
2 failed jobs in the last 24 hours · Unhealthy at 1
- StorageHealthy
storage/logs, storage/framework and bootstrap/cache writable · Unhealthy when not writable
Health checks
The checks Laravel apps need.
Install ledge-laravel and Ledge checks the parts of a Laravel app that fail without telling anyone. Every check reports the value and the threshold it used.Ledge checks the parts of a Laravel app that fail without telling anyone.
Queue
Failed jobs in the last 24 hours, and jobs stuck waiting.
Horizon
Supervisors running, paused or stopped, with wait times per queue.
Scheduler
How long since schedule:run last finished.
Storage
storage/logs, storage/framework and bootstrap/cache are writable.
Production caches
Config, route and event caches, when APP_ENV is production.
Debug mode
APP_DEBUG left on.
Environment
Variables in .env.example that the app doesn't define.
Cache and Redis
A cache roundtrip, and a PING when Redis is in use.
Database, disk and memory
Response time, disk used and PHP memory against the limit.
PHP and packages
PHP support phase, and Composer packages with a newer release.
Add your own checks
Register a class or a closure, or wrap an existing spatie/laravel-health check.
Ledge::check('search', fn (string $name) =>
CheckResult::healthy($name, ['documents' => 12])
);Update runs
Composer updates, tested by your own suite.
Ledge runs composer update on a fresh copy of your Laravel repo, runs your tests, and opens a pull request with the lockfile diff for you to review.Ledge tests each Laravel Composer update with your suite, then opens a pull request.
- Your tests decide: Ledge runs your composer test script, Pest or PHPUnit, against a fresh database.
- A pull request, not a surprise: The lockfile diff lands as a PR on the linked GitHub repo.
- You decide: Read the diff and the run log, then approve, reject or merge.
bookings.harbourline-dental.co.uk
Ready to apply3 packages updated · 214 tests passed · 0 failed
- Provision
- Environment
- Composer update
- Tests
- Pull request
composer.lock
laravel/framework 13.4.1 → 13.6.0
laravel/horizon 6.1.0 → 6.2.2
guzzlehttp/guzzle 7.15.3 → 7.16.0
Everything else your Laravel apps need.
Advisories
Matched to the Composer packages the app actually has installed.
Backups
Encrypted database dumps with mysqldump, pg_dump or sqlite3.
Uptime
Confirmed from more than one check before an alert goes out.
Alerts
Slack or Discord, on your schedule.
Open issues
Everything that needs you across your Laravel apps, in one list.
Works with your AI assistant
Ask about your Laravel apps over MCP, and start update runs.
Two commands to install.
The service provider is auto-discovered. Add the key to Ledge and it starts checking.
PHP 8.3+ with sodium and zlib · Laravel 13+
composer require ledgehq/ledge-laravel
php artisan ledge:generate-keyA quiet week should mean everything's fine.
Ledge brings Laravel health checks and tested Composer updates into one place, so you know which apps need you and which are fine.Laravel health checks and tested updates, in one place.
Get accessFree during the beta, then $12.99 per site a month.

