How it works

Six things that make Repose
different at 3am.

A tour through the product. What we built, why it works, and what it looks like when something actually breaks.

01 · The alert engine

Six regions. One decision.

Most monitoring tools page you the moment any single probe sees a failure. That's why your phone has woken you at 3am for a flaky datacenter that resolved itself in 40 seconds. We wait for consensus.

  • Page only when ≥3 probes from ≥2 continents agree within 30 seconds.
  • Single-region failures logged as anomalies — visible in the dashboard, but they don't wake your team.
  • Public probe quality dashboard at probes.repose.sh — coming during beta. Bad probes get rotated out.
  • Every alert (and every non-alert) is logged with the full decision trail. Auditable forever.
us-east
us-west
eu-west
eu-north
ap-southeast
sa-east
2/12
Single-region anomaly · alert held
Waiting for ≥3 regions / ≥2 continents to confirm. No one paged.
02 · The AI agent

Mercury investigates. You stay asleep.

When an alert does fire, Mercury — our AI agent — runs the playbook your senior SRE would run at 3am. Traceroutes, recent deploys, dependency status pages, historical pattern lookup. By the time the page reaches your phone, the investigation is already in your inbox.

  • Conversational: "Why did checkout go red 12 min ago?" → real answer with the evidence.
  • Auto-drafts the incident message for Slack and your status page. You approve, edit, send.
  • Spots patterns across history. "4th time at 02:00 UTC — possibly your nightly deploy?"
  • Powered by Claude Opus for reasoning, Haiku for the always-on filtering layer.
Why did checkout go red 12 min ago?
checkout.acme.com showed elevated latency starting at 02:14 UTC. Investigated:
  • Traceroute from 6 regions clean — network normal
  • No deploys in the last 4 hours (last: Samira, 18:30 UTC)
  • Stripe API: degraded per status.stripe.com (02:08 UTC)
  • Correlation strong: your checkout flow calls Stripe at line 1 of /checkout/process
Upstream — not yours
03 · Dependency awareness

Know when it's not your fault.

Repose continuously mirrors the status pages of 50+ major SaaS dependencies — Stripe, AWS, Cloudflare, Vercel, GitHub, Auth0, Twilio, Datadog. When your degradation correlates with an upstream incident, we tag it before paging anyone.

  • Auto-detects your dependencies from response headers, DNS, common SDKs.
  • Cross-references 50+ status pages at launch (growing to 200+ by year-end).
  • Configurable: tag-only, hold-and-notify, or page anyway — your call per service.
  • Saves an estimated 40% of false pages for SaaS teams that depend on Stripe + AWS.
checkout.acme.com P95 218ms
Stripe API Degraded
api.acme.com P95 142ms
AWS us-east-1 Operational
auth.acme.com P95 89ms
Auth0 Operational
Stripe degradation detected. Your checkout slowdown is upstream. Page held.
04 · On-call, bundled

PagerDuty-lite, included.

PagerDuty starts at $19/user/month. For most teams, that's overkill — but you still need a real rotation, escalation, and someone to pick up when the primary doesn't answer. We bundle it.

  • Schedules with rotations, layered escalation, vacation mode, timezone-aware handoffs.
  • SMS, voice, push, Slack, Teams, Discord — plus WhatsApp and Telegram for non-US teams.
  • Reply 👍 in Slack to acknowledge. No app context-switching at 3am.
  • Quiet hours per responder, override severity for genuine P0s.
On-call rotation · Engineering
Week of May 25
Mon
Samira
Tue
Samira
Wed
Kai
Thu
Kai
Fri
Maya
Sat
Maya
Sun
Samira
Samira Kai Maya · vacation Mon–Thu
05 · Status pages

Status pages that don't tax your growth.

Atlassian Statuspage charges $99/mo for 1,000 subscribers, then $300/mo per audience-specific page. We bundle unlimited status pages and unlimited subscribers with every paid tier. Custom domain, full CSS control, multi-language support.

  • Unlimited public status pages, unlimited subscribers, no per-audience tax.
  • Custom domain on every paid plan. Full theme control — Instatus-quality.
  • Multi-language pages with LLM auto-translation, human review.
  • Embeddable widget for in-app status display, retroactive incident edits.
status.acme.com
All systems normal
API
99.99%
Checkout
99.97%
Dashboard
100.0%
06 · Developer experience · on the roadmap

Monitoring as code. Or click. Your call.

Configuration drift between dashboard and code is a bug we own. The plan: define your monitors however you ship the rest of your infrastructure — Terraform, TypeScript SDK, CLI, or the dashboard. Today it's the dashboard; the rest is what we're building next. In order:

  • Read-only REST API with per-workspace tokens — first endpoints land during beta.
  • Native Terraform provider, TypeScript / Python / Go SDKs, CLI.
  • GitHub Actions for monitor-as-code in CI. PR previews of monitor changes.
  • Native MCP server: "Claude, mute staging for 2 hours" works from any LLM.
terraform
cli
typescript
# Define a monitor with consensus alerting and
# dependency-aware suppression. Apply with `terraform apply`.

resource "repose_monitor" "checkout" {
  name        = "checkout.acme.com"
  url         = "https://checkout.acme.com/health"
  interval    = 30
  consensus   = 3  # probes that must agree

  depends_on_status = [
    "stripe.com",
    "aws.amazon.com/us-east-1"
  ]

  alert_when_upstream = "tag_only"

  on_call {
    rotation = repose_rotation.engineering.id
    escalate_after = "5m"
  }
}
Free for 25 monitors
Set up your first monitor
in under two minutes.

No card. Commercial use OK. We'll only wake you up when something is actually broken — and Mercury will already know why.