laravel-reverb-ui maintained by techies-africa
Reverb UI 🚀
A premium real-time telemetry dashboard for Laravel Reverb. Monitor your WebSocket traffic, analyze event payloads, and track connections with ease.

Features
- Real-time Event Stream: Watch events as they flow through your Reverb server.
- Visual Analytics Engine: Real-time line charts for traffic influx and distribution pie charts for events and channels.
- Advanced Filtering: Surgical filtering by payload keywords, event name, channel, or specific date ranges.
- Payload Inspection: Deep-diff payload viewer with syntax highlighting and easy-copy functionality.
- Scalable Telemetry: Intelligent "Global Guard" to ignore noisy system events and auto-pruning logic.
- CLI Management: Robust console commands for manual data pruning and maintenance.
- Multi-DB Support: High-performance views optimized for both MySQL and PostgreSQL.
- Enterprise Security: Protected by Laravel Gates and customizable middleware stacks.
Installation
You can install the package via composer:
composer require techies-africa/laravel-reverb-ui
1. Run the Installer
Execute the combined setup command to publish configuration, assets, and run database migrations automatically:
php artisan reverb-ui:install
2. Authentication
Define who can access the Reverb UI in your AuthServiceProvider.php (or AppServiceProvider.php):
use Illuminate\Support\Facades\Gate;
public function boot()
{
Gate::define('viewReverbUI', function ($user) {
return in_array($user->email, [
'admin@example.com',
]);
});
}
Configuration
The configuration file is located at config/reverb-ui.php. You can customize the route path, middleware, and performance settings:
return [
'path' => 'reverb-ui',
'middleware' => ['web', 'auth'],
// Auto-prune old events to save database space
'max_events' => 1000,
// Ignore noisy system events
'ignored_events' => [
'pusher:ping',
'pusher:pong',
],
];
Console Commands
The package provides a powerful command to manually manage your telemetry data:
# Delete all data
php artisan reverb-ui:prune --all
# Prune by date range
php artisan reverb-ui:prune --from="2024-01-01 00:00:00" --to="2024-01-02 23:59:59"
# Prune specific channel or event
php artisan reverb-ui:prune --channel="orders"
php artisan reverb-ui:prune --event="App\Events\OrderPlaced"
# Force delete without confirmation
php artisan reverb-ui:prune --all --force
Technical Architecture
Under the hood, Reverb UI is designed for industrial-scale telemetry with a performance-first mindset:
- Polymorphic Metadata Store: Database-agnostic persistence supporting MySQL and PostgreSQL with optimized JSON indexing for rapid payload searches across millions of events.
- The "Global Guard" Interceptor: Intelligent listener logic that respects the
ignored_eventsconfiguration, preventing noisy system pings (likepusher:ping) from bloating your storage. - Visual Analytics Engine: Powered by a real-time charting engine that visualizes message influx and event distribution with ultra-low overhead.
- Auto-Pruning Engine: Background tasks ensure your database stays lean by automatically enforcing the
max_eventsthreshold.
Performance Note
This package listens to Reverb's internal events and persists them to your database. For extremely high-throughput applications, you may want to customize ignored_events to reduce database overhead.
Testing
composer test
Credits
- Author: Confidence Ugolo
- Organization: Techies Africa
License
The MIT License (MIT). Please see License File for more information.