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.

236,108 probes run · 30 days
79,845 decisions logged
27 pages held back

Live from our own production engine — 100% of everything that could have woken someone didn't. See the working.

01 · The alert engine

Three continents. 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 all three probes, on three continents, agree within 30 seconds.
  • Probes run on real machines in Amsterdam, Virginia, and Singapore — not simulated regions. Adding more is the easy part; agreeing on what counts as down is the hard one.
  • Single-region failures logged as anomalies — visible in the dashboard, but they don't wake your team.
  • Public probe quality dashboard — live at repose.sh/probes: per-region health and what the engine suppressed, computed from the same tables the engine writes.
  • Every alert (and every non-alert) is logged with the full decision trail. Auditable forever.
us-east · Virginia
eu-west · Amsterdam
ap-southeast · Singapore
1/3
Single-region anomaly · alert held
Waiting for all 3 regions to confirm. No one paged.
02 · The AI agent

Mercury investigates. You stay asleep.

When an alert does fire, Mercury — our AI agent — writes the first investigation the moment the incident opens: which regions agree, what the probes saw, whether an upstream provider is degraded. By the time the page reaches your phone, the first draft of the postmortem exists. Then you can ask it questions.

  • Instant incident summaries with the probe evidence and upstream correlation — live today, on every plan.
  • Conversational mode — ask follow-ups on any incident page, grounded in that incident's probes, decisions, and every earlier incident on the same monitor. Live today. The exchange below is the real thing.
  • Mercury drafts your status page update the moment an incident opens, and never publishes it — a human reads it first. Live today.
  • Pattern detection across your incident history: repeat offenders, flapping services, time-of-day and weekday clustering, recurring causes. Live today — and counted exactly, not estimated by a model.
  • Deploy correlation — tell us when you ship with one line in CI, and the incident page shows what landed in the window: “1m 45s before the first failure.” Live today on Team and up. Probes only ever show symptoms; this is the closest thing to a cause we can honestly hold, and Mercury is told plainly that timing is correlation, not proof. We record your deploys on every plan, so the history is already there if you upgrade.
  • Claude Haiku is the always-on layer; Sonnet handles conversational investigation.
  • What Mercury will never do is guess. It cannot see your source, your logs, or what was in a deploy — so it answers from the probe evidence and says “nothing here says why” when that's the truth. If you want root cause against your actual codebase, point your own coding agent at our MCP server; it has the repo, we have the evidence.
Why did checkout go red 12 min ago?
checkout.acme.com showed elevated latency starting at 02:14 UTC. Investigated:
  • Network path from all 3 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 14 major SaaS dependencies — Stripe, Cloudflare, Vercel, GitHub, Twilio, Datadog, OpenAI, Supabase and more. When your degradation correlates with an upstream incident, we tag it before paging anyone.

  • Pick your dependencies from a visual provider grid, or let us detect them: we read the response headers and the DNS chain and suggest what we find. Suggestions only — nothing is ticked for you, because a dependency you didn't choose would hold back pages you wanted.
  • Cross-references 14 status pages today — each one verified to actually work, growing as beta users ask.
  • Configurable: tag-only, hold-and-notify, or page anyway — your call per service.
  • Every held page is logged, never deleted — see what the engine suppressed, computed live.
checkout.acme.com P95 218ms
Stripe API Degraded
api.acme.com P95 142ms
Vercel Operational
auth.acme.com P95 89ms
Supabase Operational
Stripe degradation detected. Your checkout slowdown is upstream. Page held.
Point it at one endpoint and see.
25 monitors free forever, commercial use included. Two minutes to the first check, no card, and nothing to uninstall if you hate it.
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 and someone who actually gets woken. We bundle it, on every plan, unlimited responders.

  • A rotation with daily handoffs — pages go to the current on-call's inbox in parallel with your team channels. Live today.
  • Slack, Discord, and email alert channels with one-click test sends. Live today.
  • Acknowledge from the incident page, from the email, or straight from the Slack message — one signed link, no login. The team sees who's on it and re-pages stop. Resolution stays automatic: only recovered probes close an incident. Live today.
  • Layered escalation: nobody acknowledges, the next person up gets paged. Off by default, and it never escalates a held page. Live today.
  • Vacation cover and timezone-aware handoffs — shifts change hands at 09:00 your time, and it stays put across daylight saving. Live today.
  • Not built: SMS and voice calls. Push notifications to your phone work today, and they're what we use ourselves. If you need a call or a text, contact support — we'll build it when enough people ask, not before.
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. Your status page is included on every plan — unlimited viewers, no subscriber tax, ever. That pricing model is a commitment, not a promo.

  • A public status page for every workspace with live state and 7-day + 30-day uptime, straight from the consensus engine. Live todayours is public.
  • Title, description, contact link, logo, accent colour, and a forced light or dark theme — all in Settings. Live today.
  • Email subscribers with double opt-in, notified when an incident opens and resolves. Unlimited, on every plan. Live today.
  • An embeddable status pill for your own app — two lines, no dependencies, and it renders nothing rather than an error if it can't reach us. Live today.
  • Custom domains: point status.yourcompany.com at us. We verify your CNAME automatically; attaching the hostname to our deployment is still a manual step on our side, so email us and we'll finish it same day.
  • Still ahead: multi-language pages.
status.acme.com
All systems normal
API
99.99%
Checkout
99.97%
Dashboard
100.0%
06 · Developer experience

Monitoring as code. Or click. Your call.

Configuration drift between dashboard and code is a bug we own. Define your monitors however you ship the rest of your infrastructure — dashboard, API, CLI, or an agent. Here's exactly where each piece stands:

  • REST API with per-workspace tokens, read or read-write. Shipped — create a token in Settings.
  • Native MCP server: "Claude, mute staging for 2 hours" works from Claude Code, Cursor, or any MCP client. Shipped — ten tools, and /llms.txt tells an agent how to set your whole account up.
  • TypeScript SDK, a repose CLI with a reconciling apply, and a GitHub Action that posts the diff to your PR. Live today on npm: npm install @repose-sh/sdk, or npx @repose-sh/cli --help. The GitHub Action isn't on the Marketplace yet.
  • Still ahead: a native Terraform provider, and Python / Go SDKs.
repose.json
cli
typescript
# Monitors as code. Commit this, then `repose apply repose.json`
# in CI — the GitHub Action posts the diff to your PR first.

{
  "monitors": [
    {
      "name":      "checkout.acme.com",
      "kind":      "http",
      "url":       "https://checkout.acme.com/health",
      "interval":  30,
      "consensus": 3,  // probes that must agree

      "dependsOn": ["stripe", "cloudflare"],
      "alertWhenUpstream": "hold"
    }
  ]
}
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.