Know first. Page the right person. Tell your customers.

saysOK watches your product from several places, pages whoever is on call when it breaks, and keeps your status page and its subscribers up to date while you fix it.

status.acme.exampleSample data
Acme Status
1 of 3 services degraded
Degraded performance
Investigating · 14:02We are investigating an issue affecting API.
API
Degraded
Dashboard
Operational
Webhooks
Operational
Scheduled maintenanceDatabase upgrade · Sun 02:00–02:30 UTC

Built for the team that runs the product

Monitoring, on-call, incidents and a status page in one place, for a team that does not want to wire four tools together.

On-call that fits a small team

A schedule says who is primary and who is secondary each day, and an override covers a day off. An alert rule pages them in steps: the primary at once, the secondary when nobody has acknowledged in time.

On-call this weekSample data
MonPriyaJonas
TuePriyaJonas
WedSamJonas
ThuPriyaJonas
FriPriyaJonas
SatJonasPriya
SunJonasPriya
primarysecondaryoverride: Sam covers Wednesday
Escalation policy
  1. at once Slack · #incidents, and the primary on-call
  2. +10 min Secondary on-call, if not acknowledged

A status page your customers can rely on

Each component follows its monitors, so the page changes the moment a check does. Incidents and scheduled maintenance post to it, subscribers hear by email, SMS, Slack, webhook or RSS, and on Pro and Team it sits on your own domain.

Email to subscribersSample data
From
Acme Status
Subject
[Acme Status] Major outage: API
Major outage: API

We are investigating an issue affecting API.

View Acme Status

You receive this because you subscribed to status updates from Acme Status.

The same notice goes out by SMS, to Slack and to webhooks; RSS readers find it in the feed.

See which deploy did it

Deploys from GitHub, Vercel, Netlify or GitLab appear as markers on each monitor's chart, and an incident lists the deploys of the two hours before it opened. The first question, “did we just deploy?”, is answered on the page you are already looking at.

API · response timeapi.acme.example/healthSample data
Deploys before this incident · 2 in the 2 hours before it opened, or since
Switch orders to the new query builder
production · a41c9e2 on main · by jonas
2 min before it opened · Vercel
Revert “Switch orders to the new query builder”
production · 9c03b7e on main · by priya
5 min after it opened · Vercel

Alerts where your team already is

Slack, Microsoft Teams, Google Chat, Discord, PagerDuty, Opsgenie and any webhook, plus push notifications and phone calls for whoever is on call.

Sign-up and checkout, clicked through

A browser check runs a real browser through a flow such as signing in or paying, and fails when a step does, not only when the server stops answering.

Cron jobs and queues, watched too

A heartbeat monitor expects a ping from each scheduled job and alerts when one does not arrive.

An API, and a way in for AI assistants

Monitors, incidents and heartbeats are reachable over a public REST API, and the MCP endpoint lets assistants such as Claude Code and Cursor work with them.

14:00, a deploy breaks the API.

One afternoon at a made-up product, step by step: what your team sees, and what your customers see on the status page.

Your teamSample dataYour status page
  1. Your teamVercel deploys a41c9e2 to production“Switch orders to the new query builder”. It shows as a marker on the API's chart.
    14:00:12
  2. Your teamThe check from Frankfurt gets HTTP 500From api.acme.example/health. One region only, so nobody is paged yet.
    14:02:30
  3. Your teamVirginia sees it too: incident openedSEV-1. Priya, primary on call, is paged at once, and the incident lists the deploy from 2 minutes before.
    14:02:41
    Your status page“We are investigating an issue affecting API.”API turns red on status.acme.example, and subscribers by email, Slack and webhook get the notice.
  4. Your teamPriya acknowledgesFrom the Slack message's Acknowledge button. The secondary is never paged.
    14:04:05
  5. Your teamThe revert deploysVercel deploys 9c03b7e: a second marker on the chart, and a second deploy on the incident.
    14:07:50
  6. Your teamChecks pass from every region: resolvedThe incident resolves itself, and the Slack message says so.
    14:08:40
    Your status page“This incident has been resolved.”API is operational again, and subscribers are told.
  7. Your teamThe post-mortem names the deployWritten from the incident's timeline and the deploys listed on it.
    16:30:00
    Your status pageThe post-mortem goes on the pageUnder the incident, for customers to read.
Down for
6 min 10 s
Customers told
at 14:02
Cause on screen
the deploy

Paged for outages, not for one network's bad minute.

Your product is checked from Virginia, Frankfurt and Singapore. The on-call is paged when a second region sees the failure too, or as many as the alert rule asks for. Simulated below: click the map to put your product somewhere else.

demo / shop.acme.comSimulated
Operational

Up from all 3 regions.

  • Virginiaiad200 · 142ms
  • Frankfurtfra200 · 179ms
  • Singaporesin200 · 284ms
Site in

A flat price, not a price per responder

You pay for the workspace. Putting another engineer on the rota costs nothing more until the plan's seats are used.

Pro
$19 a month
40 of 50 monitors · 5 seats included
Per engineer
$3.80 a month
$19 ÷ 5 engineers

Pro, $19 a month, $3.80 per engineer.

Up to 10 people the price changes only with the plan; past that, each extra seat on Team is $4 a month. Paying per responder elsewhere? See the same sum for Better Stack.

Pro · $19 a month

  • 5 seats for your team
  • 50 monitors, checked as often as every 30 sec, up to 3 million checks a month
  • 3 status pages, each on your own domain
  • 50 SMS or WhatsApp messages and 20 voice calls a month
Choose Pro

Team · $79 a month

  • 10 seats for your team
  • 250 monitors, checked as often as every 15 sec, up to 15 million checks a month
  • Unlimited status pages, each on your own domain
  • 500 SMS or WhatsApp messages and 100 voice calls a month
Choose Team

Prices in USD, excluding VAT and sales tax. More than 250 monitors? Write to hi@saysok.com.

Put your product under watch today.

The free plan covers 10 monitors and one status page. Move to Pro or Team when your team shares on-call or your status page needs your own domain.