I was working on a Laravel project for a client — standard stuff, database queue driver, shared hosting, nothing fancy.
A payment job started failing silently.
No alert. No dashboard. Just a frustrated client asking why invoices weren't being sent.
I opened the failed_jobs table and started reading raw JSON stack traces. Then I ran php artisan queue:work with my eyes glued to the terminal. Then I wrote a quick throwaway script to query the jobs table.
You know the feeling.
The obvious fix is Laravel Horizon — it's a beautiful dashboard and I've used it many times. But Horizon requires Redis. This project was on shared hosting with no Redis. And honestly, for a small project, spinning up Redis just to get queue visibility felt like overkill.
So I spent a few evenings building something lightweight.
What I built
Lightweight Queue Inspector — a debugging dashboard for Laravel apps using the database queue driver.
No Redis. No Horizon. Just your existing jobs and failed_jobs tables.
Here's what it gives you:
- Pending jobs — see everything waiting in the queue, with collapsible payload inspection
- Failed jobs — full exception messages, stack traces, retry or delete individually or in bulk
- Successful jobs — execution time per job (colour coded green/orange/red) and memory usage
- Dashboard stats — pending count, failed count, avg execution time, top failing job
- Filters — filter any page by queue name or job class
- Security warnings — terminal warnings if you forgot to add auth middleware, or if auth is set but no login route exists
How it works under the hood
The package hooks into Laravel's built-in queue events — no extra config, no extra tables beyond one small metrics table:
| Event | What gets recorded |
|---|---|
JobProcessing |
job class, queue name, started_at |
JobProcessed |
execution_time_ms, memory_usage_mb, status = success |
JobFailed |
execution_time_ms, exception message, status = failed |
These events fire automatically when php artisan queue:work processes a job. You get full visibility into what's running, how long it takes, and what's failing — without touching a single line of your application code.
Install in 2 minutes
composer require abinashbhatta/lightweight-queue-inspector
php artisan migrate
Visit /queue-inspector. Done.
The package auto-discovers — no need to register anything in config/app.php.
Always protect it in production:
// config/queue-inspector.php
'middleware' => ['web', 'auth'],
Who is this for?
If you're using Horizon and Redis already — stick with Horizon, it's excellent.
This is for the rest of us:
- Small to medium projects on shared hosting
- Internal tools and admin panels
- Early-stage apps where Redis is overkill
- Anyone who just wants to see what their queues are doing right now
What's coming next
I'm planning to add auto-refresh, email/Slack alerts on job failure, dark mode, and charts showing job trends over time. The full roadmap is on GitHub.
GitHub: https://github.com/abinash889/lightweight-queue-inspector
Packagist: https://packagist.org/packages/abinashbhatta/lightweight-queue-inspector
If you've ever been in that same situation — debugging queues blind at an inconvenient hour — I'd love to know what you think. What would make this more useful for your projects?

Top comments (0)