Production Monitoring
Watch live production URLs for visual drift on a schedule, with threshold alerting and history. The "does my live site look right, right now?" layer.
Production Monitoring
CI testing runs before merge. Production monitoring answers a different question: does your live site look right, right now? It catches broken deploys, CDN failures, third-party script injection, ad layout corruption, and A/B test leakage — things that never touch a pull request.
There are two ways to run it: the CLI (self-hosted, cron it yourself) and the cloud scheduler (managed, runs on cadence for you).
CLI monitoring
The frontguard monitor command renders live URLs and alerts when visual drift
exceeds a threshold.
frontguard monitor --url https://example.com,https://example.com/pricing --threshold 2frontguard monitor --url https://example.com --interval 15 --webhook $SLACK_WEBHOOKfrontguard monitor --url http://localhost:3000 --watchEach run stores a history entry per URL under --history-dir (default
.frontguard/monitor-history). Inspect the trend at any time:
frontguard monitor --history --limit 50| Flag | Description | Default |
|---|---|---|
-u, --url <urls> | Comma-separated URLs to monitor | From config |
-t, --threshold <n> | Alert threshold percentage (0–100) | 5 |
--webhook <url> | Webhook for alerts (Slack/Discord/generic) | — |
--interval <minutes> | Daemon mode — run every N minutes | — |
--watch | Continuous poll loop (local dev) | false |
--history / --limit <n> | Print stored history and exit | — / 20 |
Daemon and watch modes shut down gracefully on Ctrl+C/SIGTERM after the
current iteration — they won't leave a half-finished run behind.
As a plugin
Under the hood the command uses the monitor plugin, which you can also add to a config directly:
import { createMonitorPlugin } from '@frontguard/cli/plugins';
export default {
baseUrl: 'https://example.com',
plugins: [
createMonitorPlugin({
urls: ['https://example.com', 'https://example.com/pricing'],
alertThreshold: 0.02, // 2%
alerts: { webhook: process.env.SLACK_WEBHOOK },
historyDir: '.frontguard/monitor-history',
}),
],
};Cloud monitoring (managed scheduler)
The cloud platform runs monitors for you on a Cloudflare Workers Cron trigger — no cron of your own. A monitor is a saved config (URL, routes, viewports, interval, alert threshold, channels). The scheduler queries due monitors, runs them in a sandbox, retries once on failure, prunes history per your plan, and fires alerts on regressions.
curl -X POST https://api.frontguard.dev/v1/monitors \
-H "Authorization: Bearer $FRONTGUARD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Marketing site",
"url": "https://example.com",
"routes": ["/", "/pricing"],
"viewports": [375, 1440],
"intervalMinutes": 60,
"alertThreshold": 0.02,
"alerts": { "slack": "https://hooks.slack.com/services/…" }
}'Alerts support Slack, email, and PagerDuty, with deduplication and snooze — see the Cloud API guide. Production monitoring is a Business-plan feature.
Production monitoring requires baselines for the live URLs. The first run for a URL establishes the baseline; subsequent runs compare against it.
Third-Party Script Monitoring
Detect when ad networks, analytics SDKs, or chat widgets appear or disappear on a page between runs — before they silently break your layout.
Cloud API
Optional hosted rendering, persistent history, team collaboration, and multi-channel alerting. The CLI is fully self-hostable — the cloud is for teams that want managed infrastructure.