Every client site, watched. One price for the whole team.

saysOK checks the sites and services you look after for clients, tells your team the moment one fails, and gives each client a status page under their own name.

Monitorsgrouped by clientSample data
acme1 down · 2 up
Acme shopshop.acme.com
Down
Acme websiteacme.com
Operational
Acme checkout APIapi.acme.com/health
Operational
nordlicht2 up
Nordlicht websitenordlicht.example
Operational
Nordlicht bookingbooking.nordlicht.example
Operational
cafe-blau2 up
Café Blau websitecafeblau.example
Operational
Café Blau certificatecafeblau.example:443
Operational

Built for looking after other people's sites

What an agency or freelancer needs from monitoring, and nothing to bolt on.

Every client in one list

Tag each monitor with the client it belongs to and group the list by that tag: one section per client, with what is up and what is down at a glance.

Group by
Sample data
acme1 down · 2 up
Acme shopshop.acme.com
Down
Acme websiteacme.com
Operational
Acme checkout APIapi.acme.com/health
Operational
nordlicht2 up
Nordlicht websitenordlicht.example
Operational
Nordlicht bookingbooking.nordlicht.example
Operational
cafe-blau2 up
Café Blau websitecafeblau.example
Operational
Café Blau certificatecafeblau.example:443
Operational

A status page per client

Each page takes the client's brand color and your own CSS, sits on their domain, and on Pro and Team carries no “Powered by saysOK”. A page can be public, behind a password, or private. Pro has 3, Team as many as you need.

Sample data
status.nordlicht.example
Nordlicht — Status
refreshed 12s ago
All systems operational
Website
60d uptime100.000%
Booking
60d uptime99.981%

Know before the client calls

Checks run as often as every 15 sec. An alert goes to Slack, Microsoft Teams, email or a phone, and an on-call schedule decides whose phone.

# client-alertsSample data
saysOK 02:14
SEV-1 Incident Opened
Acme shop is down
Incident
INC-2841
Affected
Acme shop
Source: saysOK | Workspace: Northside Studio
AcknowledgeResolve
  • 02:14:07 Slack · #client-alerts sent
  • 02:14:08 Phone call · Maya, on call this week answered
  • 02:15:31 Acknowledged by Maya

Certificates and domains that never lapse

SSL checks fail before a certificate expires and can remind you 30, 14 and 3 days out. DNS checks alert when a client's records stop matching what you set.

Backups and cron jobs, watched too

A heartbeat monitor expects a ping from each scheduled job and alerts when one does not arrive, so a silent backup failure is found the same day.

A workspace of its own, when a client needs one

A client that wants its own members, alerts and invoice gets a separate workspace: create it from the workspace switcher and move between them under one sign-in. Each workspace is on its own plan.

Planned work without the noise

A maintenance window holds back alerts for planned work (SEV-1 rules still fire) and shows on the status page as scheduled maintenance.

02:14, a client's shop stops answering.

One night at a made-up client, step by step: what your team sees, and what the client's customers see on its status page.

Your teamSample dataAcme's status page
  1. Your teamThe check from Frankfurt gets HTTP 503From shop.acme.com. One region only, so nobody is paged yet: it could be a blip on one network.
    02:14:00
  2. Your teamVirginia sees it too: incident openedINC-2841, SEV-1. Slack posts it to #client-alerts with Acknowledge and Resolve buttons.
    02:14:07
    Acme's status page“We are investigating an issue affecting Shop.”Shop turns red on status.acme.example, and the page's subscribers get the same notice.
  3. Your teamNobody has acknowledged: Maya is phonedAn escalation step pages whoever is on call this week. The call reads the alert out.
    02:19:07
  4. Your teamMaya presses 1: acknowledgedThe remaining escalation steps stop, and Maya starts looking.
    02:19:40
  5. Your teamChecks pass from every region: resolvedThe incident resolves itself, and the Slack message says so.
    02:31:10
    Acme's status page“This incident has been resolved.”Shop is operational again, and subscribers are told.
  6. Your teamThe post-mortem is writtenStarted from the incident's timeline: cause, impact and what changes.
    09:30:00
    Acme's status pageThe post-mortem goes on the pageUnder the incident, for Acme and its customers to read.
Down for
17 min 10 s
Client told
at 02:14
People woken
one

No 3 a.m. page for a blip on one network.

Each client site is checked from Virginia, Frankfurt and Singapore. Your team is alerted when a second region sees the failure too, or as many as the alert rule asks for. Simulated below: click the map to put a client's site 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 client

You pay for the workspace. Adding a client, a teammate or a status page inside the plan's limits costs nothing more.

Monitors per site
For example the website and its certificate.
Pro
$19 a month
40 of 50 monitors · 5 seats included
Per client site
$0.95 a month
20 sites × 2 monitors = 40 monitors

Pro, $19 a month, $0.95 per client site.

The price does not change with the number of clients, only with the plan. Paying per responder elsewhere? See the same sum for Better Stack.

Pro · $19 a month

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

Team · $79 a month

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

Prices in USD, excluding VAT and sales tax. Looking after more than 250 monitors, or want something set up for you? Write to hi@saysok.com.

Put your first client's site under watch.

The free plan covers 10 monitors and one status page. Move to Pro or Team when a client needs faster checks or a page on its own domain.