marcorieser/statamic-vitals
Vitals adds a diagnostics dashboard to the Statamic control panel, running health checks on PHP version, caching, queues, and configuration so you can catch problems early and keep your sites running smoothly. Results appear as status badges, making issues easy to spot at a glance.
Architecture fit
marcorieser/statamic-vitals is a Statamic addon: a Composer-installed Laravel package that registers a control-panel widget, ships publishable config, and runs a registry of configurable health checks (PHP version, environment, cache, storage, queues). Architecturally it is additive and read-only — it observes runtime state, it does not own content models, routes, or the data layer. That is the ideal shape for a TPM to sponsor: the blast radius of a failure is "the dashboard is wrong or missing," not "the site is down." It also requires no new runtime (no Node service, no external daemon, no database tables), so it adds zero infrastructure surface and zero procurement.
The one architectural detail that matters for us is the description line "provide vitals of your Statamic installation for external usage." If that means an HTTP endpoint or CLI export beyond the CP widget, it is a security-relevant surface, not just a UI convenience — it must be confirmed as authenticated, permission-gated, and non-disclosing (no env values, no paths, no credentials) before it goes anywhere near production.
Integration feasibility Low effort, standard Composer consumption: require the package, publish config, register/enable the widget, clear caches. Realistic estimate is well under a sprint for a single site, most of which is deciding which checks matter to us rather than installing anything. Feasibility risk is not installation — it is version coexistence. v1.3.0's changelog is a single line ("Add support for Statamic v6"), which does not tell us whether the constraint widened (v5 and v6 both supported) or narrowed (v6 only, v5 users frozen at v1.2.x).
Technical risk
Key questions
composer.json diff between v1.2.x and v1.3.0?Stack fit Excellent on paper. Pure PHP addon on Laravel + Statamic, consuming the container, config, cache, and queue primitives we already run. No new language, no new deploy artifact, no new on-call surface. It fits inside our existing Composer/CI tooling and our existing PHP support policy — the only policy interaction is the transitive PHP/Laravel floor.
Migration path
^1.3.0 only on sites on (or moving to) Statamic v6; hold everything else on an explicit last-known-good v1.2.x constraint rather than floating.Compatibility
Maintain an explicit matrix — package version × Statamic version × Laravel version × PHP version — derived from composer.json and CI, not from release notes. Assume v1.3.0 is unvalidated against Statamic v4 and earlier, and assume v1.2.x is frozen at whatever it shipped with. Enforce lockfile review in CI so a constraint collision surfaces as a build failure rather than a silent resolve to an older version.
Sequencing
composer.json diff (constraint change is the single most informative artifact).Maintenance Steady-state cost is genuinely low — one Composer line, no schema, no infra — provided the package stays alive. The real cost is the compatibility matrix we now own and the fact that this dependency inherits Statamic's release cadence. Budget a small recurring allowance per Statamic major, not a standing project. If the maintainer goes quiet, the fallback is a fork or a reimplementation; both are cheap here because the surface is small, which is precisely why this is a tolerable risk rather than a strategic one.
Support This is where the TPM value actually lands: it converts "the site feels slow / editors can't save / is the queue running?" escalations into a self-serve CP view. That is a measurable reduction in tier-1 noise, but only if two things are true — the check set maps to our real incident history, and someone owns the interpretation. Without an owner, every red indicator becomes a new support ticket with no routing. Publish a one-page internal note: what each check means, the threshold, the first action, and the escalation path. That document, not the package, is the deliverable.
Scaling Neutral. Checks read existing Laravel state; they do not add workers, storage, or a data model. The only scaling question is execution cost if checks run on every CP request — verify and, if needed, accept or cache. This is a sanity check on the pilot, not a capacity project.
Failure modes
Ramp-up Very low. Any Laravel-fluent engineer can install and configure this in an afternoon; the knowledge that actually gates value is Statamic addon anatomy (CP asset publishing, Stache/cache clearing) plus incident history — knowing which signals matter. Assign one engineer to run the pilot and author the internal runbook note. That artifact, together with a short Statamic v6 validation spike, is the whole of the ask — and it is the difference between a decorative widget and a durable reduction in escalations.
How can I help you explore Laravel packages today?