always-open/laravel-totem
Laravel Totem gives your app a dashboard to manage scheduled tasks: view, create, edit, enable or disable cron entries in the browser, track run history and output, and execute due tasks via an Artisan command instead of relying only on the scheduler.
Architecture fit. Laravel Totem is an in-app operational dashboard for Laravel's task scheduler: it stores task definitions and execution history in the application database, exposes a Blade-rendered UI at a configurable route, and lets privileged users run scheduled tasks on demand. It fits our stack only if we are a Laravel/PHP application that already relies on php artisan schedule:run as the single scheduling mechanism. It does not help us observe cron jobs, queue workers, or non-PHP services — those need a separate monitoring path. v13.4.0 is a presentation-layer release (dark mode with Light/Dark/Browser-default switcher) and does not change the package's architectural footprint, database schema, or scheduling behaviour.
Integration feasibility. Straightforward for a Laravel app: Composer install, totem:install, publish config/assets/migrations, run migrations, and add the scheduler cron entry on a single node. No new runtime dependencies, no external service, no queue worker required. The only new work in this release is operational rather than architectural: the published asset set gains css/dark.css, so any deploy pipeline that assumes a fixed asset list needs re-running php artisan totem:assets.
Technical risk. Low, and mostly self-inflicted rather than introduced by the package:
layout.blade.php or partials/sidebar.blade.php must hand-merge new lines. This release is direct evidence that UI-level overrides create recurring upgrade tax.dark.css → unstyled or partially styled dark theme).TOTEM_THEME_STORAGE_KEY=theme is set to share state with Filament — intentional, but it couples Totem's theme persistence to Filament's key and should be a deliberate decision.Key questions.
schedule() in Kernel/routes/console.php)? Drift here is the main long-term risk.onOneServer/overlap locks to avoid duplicate runs?Stack fit. Good fit for a Laravel 10/11 monolith or modular monolith using Blade, where the operations audience already has app-level credentials. Poor fit if the dashboard is expected to be a standalone, independently deployable ops console, or if scheduling spans non-Laravel runtimes — in that case Totem becomes a partial view and should be paired with an external scheduler-monitoring service.
Migration path.
schedule() definitions are visible and correctly parsed by Totem.Compatibility. v13.4.0 is additive and drop-in from v13.3.0 — no schema migration, no config breaking change, no deprecations announced. The three upgrade actions are all publish/merge steps rather than code changes. Projects that do not override Totem views need only the totem:assets run.
Sequencing.
php artisan totem:assets to the release pipeline as an idempotent step so asset-only releases like this one cannot be silently skipped.TOTEM_THEME_STORAGE_KEY=theme. Treat as a separate, low-priority change with its own verification.Maintenance. The release cadence appears active (v13.x line, incremental UI improvements). The recurring maintenance cost is not code — it is deploy discipline: asset publishing on every release, and Blade override merging if we choose to customise. Pin to a minor version range and review changelogs on upgrade; the failure mode of an unreviewed minor bump is cosmetic, but the failure mode of an unreviewed major bump could be structural.
Support. Community-maintained with a small contributor base (this release is a single external PR). No commercial SLA, no guaranteed security response window. Mitigation: keep the blast radius small by treating Totem as an observability convenience rather than a critical-path dependency, and retain a fallback (Laravel's native scheduler output plus log aggregation) that works if the dashboard is unavailable.
Scaling. The dashboard is read-heavy against its own tables and will not be a throughput bottleneck at typical ops-audience concurrency. The real scaling concerns are (a) unbounded growth of execution history — needs a retention/pruning policy and a review of table size after a few weeks of real traffic; and (b) multi-node scheduling, where correctness depends on a single scheduler node or overlap-prevention locks, not on Totem itself. Manual execution from the UI is a privileged, potentially long-running action — it should be audit-logged and rate-limited by policy.
Failure modes.
dark.css, broken or partially styled theme. Cosmetic but visible; caught only if someone uses the dashboard.Ramp-up. Low for Laravel developers — roughly half a day to install, gate, and verify; the concepts map directly onto Laravel's scheduler. The non-obvious cost is the operational runbook: who can trigger tasks, how execution history is pruned, what to check when the dashboard looks broken, and the deploy-time asset step. Produce that runbook alongside the rollout rather than after the first incident. For the dark mode feature specifically, ramp-up is negligible — it requires no training, only a note that the switcher follows browser default by default.
How can I help you explore Laravel packages today?