What Watchline does

Add your URLs. Watchline checks them on a schedule, alerts you on confirmed outages — two consecutive failed checks, so a single blip never pages you — and publishes a public status page your customers can watch while you fix it.

WWatchline · Incident detail — Sample
Sample extract
Detail view — one incident, start to finish

Down at 14:32. Resolved at 15:21. Every step on the record.

Every confirmed state change is recorded with timestamps and detail, and served in the status payload — the same timeline your customers read on the public page, and a real audit trail for you.

1
14:32 — Confirmed DOWN

Checkout API: two consecutive failed checks — expected status 200, got 502. State persisted; incident opened.

Down
2
14:47 — Identified

Cause posted to the public timeline in plain language, with the time of the next update.

Working
3
15:05 — Monitoring

Fix deployed. The monitor stays in the incident until the checks prove it is back.

Watching
4
15:21 — Resolved

Two consecutive successes close the incident. Duration and detail stay in the history.

Resolved
Sample incident detail — times and outcomes are illustrative, not a customer’s resultsIncident log · status page · GET /status

HTTP + keyword checks

Each monitor checks an http(s) URL against expected status codes, with an optional keyword that must appear in the response body. Intervals from 10 seconds up, per-monitor timeouts.

Flap-protected state tracking

A monitor is DOWN after 2 consecutive failures and UP after 2 consecutive successes. State persists to disk across restarts.

Incident log

Every confirmed state change is recorded with timestamps and detail, and served in the status payload — a real audit trail.

Real alert channels

Webhooks (JSON POST, 3 retries with backoff), email via the Resend API, and SMS via Twilio's Messages API. Every dispatch returns a per-channel report: sent, failed, not_configured, or misconfigured — never silent.

Public status page + data endpoint

The service renders a real public status page from live data — overall banner state, per-monitor uptime and latency, 90-day uptime bars, and the incident timeline. GET /status serves the same data as JSON: summary counts, per-monitor detail, and the 20 most recent incidents.

Honest scope: this page describes what the v1 product does today. Roadmap items are labeled as roadmap — we don't sell features that don't exist yet.
See pricingRead the docs