ohdearapp/nova-ohdear-tool
Integrate Oh Dear website monitoring into Laravel Nova. View site health, uptime, SSL, broken links, and performance checks from a dedicated Nova tool, so teams can spot issues without leaving their admin panel.
Architecture fit: This is a Laravel Nova tool, not a general-purpose Laravel package. It only fits estates already running Nova as the internal admin surface, and it inherits Nova's auth, layout, theme, and navigation for free. As a TPM, treat this as a thin display layer over an existing Oh Dear subscription — it consolidates a dashboard, it does not add a capability. If the org isn't on Nova or isn't on Oh Dear, the architecture fit is zero and the package is irrelevant regardless of its quality.
Integration feasibility: Low effort, standard Nova tool wiring: composer require, register the FQCN in NovaServiceProvider::tools(), publish config/assets, set OHDEAR_API_TOKEN, verify the sidebar item. A Nova-fluent engineer does this in under half a day, including gating with canSee/authorize. The absence of migrations, scheduled jobs, and write-back paths keeps the blast radius small — this is a read-only viewer, which is exactly the profile a TPM wants for a first experiment in a shared admin panel.
Technical risk: Three distinct risks, and a TPM should size each separately.
config/services.php, never committed in the published config. Oh Dear API changes since 2021 are unaddressed by upstream.Favorable: MIT license means forking and internal patching is legally and practically frictionless — the risk is ownership cost, not lock-in.
Key questions to close before committing:
composer.json constraints, and what does our upgrade horizon look like?Stack fit: Adopt only when all hold: Nova 3.x-era stack (Laravel 8 / PHP 7.x) with no near-term major upgrade, Oh Dear already the source of truth for uptime/SSL/broken-link/schedule checks, and an internal audience of engineers and PMs with Nova access. The value proposition is "one fewer tab during incident triage and post-deploy confirmation" — a real but modest win. If any of those conditions fails, a first-party Nova card backed by Oh Dear's API is comparable effort with better long-term fit.
Migration path: There is essentially nothing to migrate — no schema, no data, no background processes. Adoption is additive and reversible: register the tool, gate it, confirm it renders, and remove the registration if it doesn't. This is the strongest argument for a bounded trial: the rollback cost is one line in NovaServiceProvider.
Compatibility: This is where the integration either succeeds or quietly becomes a fork project. Sequence the compatibility check first, in a throwaway branch:
composer.json constraints against our locked Nova/Laravel/PHP versions.Sequencing:
canSee restricted to ops/on-call, plus environment-aware registration so staging and production point at different Oh Dear teams and the tool simply doesn't register where no token exists.Maintenance: The dominant ongoing cost. Upstream velocity is negligible — a single cosmetic patch in the last release and zero dependents means no third-party guidance, no community fixes, and no expectation of timely patches. Plan for fork-and-own from day one: vendor the code, pin the version, and assign an owner. The realistic maintenance surface is small (a tool class, a Vue component, a config file) but the upgrade tax against Nova and Oh Dear's API recurs at every major bump. Budget it as "internal tool with a maintainer," not "dependency."
Support: No vendor support, no SLA, no security patching commitment. Internal support is limited to two knobs — the published config (token, cache TTL) and canSee/authorize. Anything richer (filtering, per-check detail pages, alerting hooks) means forking the Vue component. Set stakeholder expectations accordingly: this is a convenience artifact, not a platform bet, and it should not appear on a roadmap that spans more than a year without a fork owner named next to it.
Scaling: Two scaling axes, both modest.
canSee rather than letting a monitoring dashboard appear for PMs who can't act on it.Failure modes to document in the runbook:
config:clear, token validity, then Oh Dear's status page, then storage/logs/laravel.log. The package tends to render API errors as an empty state rather than a clear message, so the failure is silent and needs a documented triage path.tools(), canSee/authorize returning false, or assets not re-published (nova:publish --force).config:cache — caused by reading env() directly inside tool config instead of config/services.php; standardize the token as a named service config key.Ramp-up: Very low for end users — a new sidebar entry that lists monitored sites and drills into uptime, SSL, broken links, and scheduled jobs; no training beyond "scan for red, click through." Engineering ramp-up is also low (small, permissively licensed, readable source) but front-loaded on the two discovery items: the capability discrepancy and the compatibility spike. The highest-leverage adoption pattern is to put a dashboard card in front of the tool so health is glanceable on /nova before anyone thinks to open the tool — that is the change that alters day-to-day behavior, and it's the one thing worth insisting on during the pilot.
How can I help you explore Laravel packages today?