alexisgeneau/laravel-belvedere
A Laravel package for building expressive, view-driven interfaces with minimal boilerplate. Belvedere gives you reusable components and clean conventions so you can ship polished dashboards and admin screens faster, while staying fully within Laravel's familiar Blade and Eloquent patterns.
Belvedere is a first-release, read-mostly observability package that brings Horizon-style queue introspection to Laravel's database queue driver — a genuine gap, since Horizon only supports Redis. Architecturally it is a thin dashboard layer over the jobs, failed_jobs, and job_batches tables, so integration risk is low: no new infrastructure, no broker changes, no worker modifications. The primary technical risks are (a) schema coupling — the package necessarily reads Laravel's queue tables and any custom schema or non-standard driver configuration (custom table names, connection overrides) is the most likely incompatibility; (b) query cost — polling jobs and failed_jobs for counts, throughput, and wait times can produce expensive scans on high-volume tables without appropriate indexes; and (c) maturity — v0.1.0 has no established production track record, and the release note does not describe authorization, retention, or data-pruning behavior. Key questions: Does it ship an authorization gate/policy hook and is it disabled by default outside local? Are polling intervals and queries configurable, and does it add indexes or require them? Does it only read, or does it also retry/delete jobs (write path raises audit and permission concerns)? What is the supported-version policy for Laravel 12/13 and PHP?
Strong stack fit for any Laravel 12/13 application already using the database queue driver — which is the default for smaller deployments and shared hosting where Redis is unavailable. Integration is effectively composer-install plus config publish; no migration path is required because the underlying tables already exist, and no worker or supervisor changes are needed. Compatibility is explicitly claimed and unusually well tested for a first release: MySQL 8.4 and 9.7, MariaDB 11.8, PostgreSQL 17, and SQLite, across Laravel 12 and 13 — a broad matrix that de-risks adoption across heterogeneous fleets. Sequencing recommendation: (1) pilot in a staging or single low-traffic production service; (2) confirm the dashboard's queries are covered by existing indexes on jobs (queue, reserved_at, available_at) and failed_jobs; (3) verify the authorization gate is enforced and the route is not publicly exposed; (4) only then roll out to remaining services. Treat the version constraint as ^0.1 with expectation of pre-1.0 churn, and pin exact versions in production until a 1.0 or a stable config surface is announced.
Maintenance burden is low-to-moderate: one composer dependency and no new runtime to operate, but pre-1.0 semver means config keys and route names may change without a major version bump — budget for periodic review of CHANGELOG.md at each upgrade. Support posture is uncertain at v0.1.0: single-vendor/small-maintainer risk, no stated support policy, and no LTS commitment; recommend designating an internal owner and keeping the package swappable (it is additive, so removal is cheap). Scaling is the main operational concern — dashboard queries against large jobs/failed_jobs tables can add read load to the primary database exactly when the queue is backed up, so gate access, keep polling conservative, and consider a read replica or scheduled pruning of old rows. Failure modes are mostly benign and contained: if the dashboard is broken or slow it degrades observability, not job processing; the real risks are accidentally exposing queue internals publicly (unauthorized retry/flush actions) and slow queries under backlog. Ramp-up is minimal — the Horizon-style UI is familiar to most Laravel teams, so onboarding is measured in minutes, with the caveat that operators must be told this covers only the database driver and will not show Redis-queued jobs in mixed-driver setups.
Recommendation: Adopt for evaluation/pilot. Worth adding, contingent on confirming an authorization gate and index coverage before production exposure.
How can I help you explore Laravel packages today?