Skip to main content

what shipped, when.

One dated entry per change that reaches you. Also posted to GitHub Discussions and as an Atom feed.

Fixes from September worth knowing about

Heartbeat monitors. Heartbeats created through the first version of the form were judged hours apart, so a missed ping was noticed late and a manual resolve reopened the same outage. Existing intervals were corrected to a tenth of the window, between one and five minutes, and the API now refuses a coarser one. If you have heartbeats, they page faster now.

Telegram supergroups. When a group is upgraded to a supergroup, Telegram gives it a new chat id and the old one dies. The channel now follows the move on the first failed send and saves the new id. Bring-your-own bots are covered too.

Incident region breakdown. With majority quorum the last region is usually one check behind when the incident opens, and alerts named it under "up". It is now "not confirmed", and the breakdown widens as regions confirm instead of staying frozen at the snapshot taken at open.

Self-host. A region can be opted out of new monitors' defaults with regions.default_selected. It stays pickable on the form, just starts unchecked. See multi-region probes.

MCP: set up a whole org from your AI client

The MCP server now covers the setup path, not just reads. 16 read tools and 15 write tools, every write behind a confirmation in the client.

  • create_status_page, update_status_page, add_status_page_components and update_status_page_component. Owner-gated, same bar as the REST API.
  • create_monitors puts a batch behind one confirmation instead of one prompt per monitor.
  • HTTP checks take request headers and a body. A credential is referenced as Bearer {{ key }} from your org variables, never pasted. A pasted literal is refused.
  • Monitor create takes regions and binds notification channels, so a monitor made from a client pages someone from the first check.
  • get_org_usage tells you which org the token is bound to. Scope and org refusals say how to rebind.

One setup page per client, each with the exact config for that client: Claude, Cursor, VS Code, Grok. Hub: /mcp-server.

Reference: MCP server docs.

Status page: noindex, link to your site, powered-by toggle

Three small status page controls.

Hide from search engines. The page, its incidents and the archive carry noindex. The URL keeps working for anyone who has it. For a page you share with customers by link but do not want indexed.

Header link. With a website set, the logo or display name in the header links to your own site, so a reader has a way back other than the browser button. Every plan gets the link; on hosted it carries rel="nofollow" unless the plan includes white-label, so an open signup cannot be farmed for backlinks.

Powered-by toggle is in the page editor. It used to be API-only, and saving the editor cleared it. Honoured on plans with white-label; elsewhere the badge always shows.

Also fixed: a grouped page now keeps the component order you dragged it into.

Docs: public status page.

Mattermost and Gotify channels, and acknowledging from the phone

Two new notification channels.

Mattermost. Incoming webhook, works on Mattermost Cloud or your own server. Mentions use the server's own username rules, so directory-synced handles like svc.oncall.emea work.

Gotify. Point a channel at your Gotify server with an application token. Priority follows the client scale: 8 for a high-urgency open, 5 for other opens, 3 for a resolve. The incident link is the notification's click URL.

Acknowledging from the notification itself. An ntfy page carries an Acknowledge button, and acknowledging a Pushover emergency page in the Pushover app acknowledges the incident here too. That stops the repeats still going out on other channels. The link is signed, expires after a week, and is tied to the exact episode it was sent for, so a stale alert on a phone cannot silence a later outage.

Docs: notifications.

Three new free tools: SSL checker, domain expiry, redirect chain

No account needed, no email capture.

  • SSL certificate checker: chain, issuer, expiry, days left.
  • Domain expiry checker: registrar expiry for the domain, the thing that takes a site down with no warning.
  • HTTP header and redirect chain checker: every hop with its raw Location, the final status, and the full header set. Names the failures the last status code hides: a loop, a hop limit, a chain that leaves the host and drops cookies, a chain ending on plain HTTP.

All tools: /tools.

Organizations are managed from the console now

Until now there was no way to create a second organization in the app. The API existed, the button did not.

/settings/organizations covers create, rename, delete and restore. /settings/team is only about people.

  • Deleting an org asks you to type its name back.
  • A deleted org's slug is held for the whole restore window, so nobody can grab it in between.
  • If an org blocks your account deletion because you are its only owner, you can hand it a second owner instead of deleting it.
  • Sessions pointed at a deleted org are moved, not stranded on a login loop.

Docs: organizations.