StatOSS

Changelog

What changed, newest first.

5 October 2026

  • Sydney, Australia checks every monitor on Hobby and Pro, in a fourth region, Oceania. It is no longer one of the locations an account adds.
  • A check location alone in its region, Ashburn, Singapore or Sydney today, looks again itself a few seconds after a failure, and the failure counts only when it fails again. A region with a second location asks that one instead.

4 October 2026

  • A live demo of statoss-standalone, the open-source edition, runs at statoss.com/standalone-demo.
  • Alerts can go to Microsoft Teams, Telegram and Pushover on Hobby and Pro. Pushover can repeat a down alert until someone acknowledges it.
  • On the longer views, a monitor that reads 0 ms most of the time keeps its slower readings in the 95th percentile, instead of showing 95% under 0 ms.
  • The uptime reports' figures for a month, per service, location and day, are at statoss.com/uptime/data.json?month=2026-10.

3 October 2026

  • A component that follows a vendor's status page alerts you by email, Slack, Discord and ntfy when the vendor reports an outage, trouble, or things working again.
  • Components can follow pages on Instatus, Better Stack, status.io (GitLab, Neon) and Sorry (Postmark), and Slack's, Heroku's and Stripe's status. Instatus pages could not be read before.
  • A drafted update or post-mortem says when it was written and what from, and shows the facts it was given. When the drafting service cannot be reached, a plain draft from the incident's times stands in.
  • Dates from another year say which year.
  • The API refuses an unknown method or keywordMode, a header value with a line break, and an expected DNS answer or component name over its limit, instead of saving something else.
  • The API gives keys that can write a heartbeat's ping URL, and its 429 answers carry a Retry-After.

2 October 2026

  • A status page's Get updates box gives the email field a row of its own, with Add to Slack and Add to Discord on the row under it.
  • Typing a date into the incident and maintenance forms no longer breaks the page halfway through a number.
  • A header value with a character a request cannot carry, such as a curly quote, is refused when the monitor is saved, and the message names the header.
  • A region's outage is dated from its first failed check there.
  • On Hobby and Pro a monitor can be slow above a different number in some regions.

1 October 2026

  • Response times are medians. On the 24-hour range each bar is the median of the eleven readings around it in its region, so one slow check makes no spike and the bars hold still, and above the strip are the median and the figure 95% of checks came in under. The API, status.json and the dashboard give the same 24-hour median.
  • A region's places are compared hour by hour, and the slower ones scaled to the fastest's level; a location you added counts as it reads.
  • The checks behind a bar show where each one's time went: the lookup, the connection, the TLS handshake and the first byte. When a second location got through after the first failed, the row says what the first saw.
  • An outage is dated from its first failed check. A location alone in its region checks two sites that are always up before its failure counts.
  • Each part of a page's settings says what it changes and who sees it.

30 September 2026

  • Maintenance can repeat every week or month; each window is planned a week ahead and announced like one planned by hand. Every page has a calendar feed of its maintenance at /maintenance.ics.
  • Billing shows the next invoice line by line: the plan for the period ahead, what was used this period, credit and VAT, and the day it is charged.
  • Billing lists what the account costs a month, the add-ons it can take and the allowances in use. Invoices and receipts download as PDFs.
  • Adding a check location, a fixed IP or a block of subscribers asks first, with the bill a month before and after. Changing or cancelling the plan does too.
  • Account is split into Profile, Security and Your data.
  • Subscribers can be downloaded as CSV and imported from Statuspage, Instatus, Better Stack or a list of addresses. Every subscriber email has a Change what you get link to pick the monitors it covers.
  • Discord and Microsoft Teams channels can subscribe to a page on Pro: Add to Discord picks a channel on Discord, or paste a channel's webhook or a Teams workflow URL under the email field and the channel gets a link to confirm. The owner can add one on the Subscribers tab.

29 September 2026

  • Regions: the checks come from Europe, North America and Asia, the regions taking turns, and Singapore is a check location beside Aarhus, Falkenstein and Ashburn. A failure is checked again from every region at once.
  • A monitor down from one region says so: down from North America, on the page, in the alerts and in the incident it opens. Another alert goes out when the outage spreads to other regions or leaves some.
  • Under the headline a line per region, a lane per region under each strip, and response time by region under each monitor. Response times count from Europe unless a page picks more regions; a page also picks the regions that count toward its uptime.
  • Hobby and Pro can add check locations under Account, Check locations: London, Paris, San Jose, Toronto and São Paulo at $4 a month, Johannesburg, Tokyo and Sydney at $8. Pro includes $4 of them. A fixed IP on an added location is $4 a month.
  • A monitor can be checked from one region alone, for a site that lets only a fixed IP in.
  • Private pages on Pro: only the people and email domains you allow see the page. A visitor enters their address, gets a link that works once for 15 minutes, and stays signed in on that browser for 30 days. Taking someone off the list locks them out at once.
  • Support can see the page you are on in a chat, you can rate a reply and attach files, and support can open your dashboard read-only for 30 minutes with a reason you see under Account.
  • Uptime reports at /uptime: 20 services developers depend on, such as GitHub, npm, Stripe and OpenAI, checked every 5 minutes from our locations, with their outages.
  • Product news by email, only if you ask for it: a box at sign-up and under Account, Product news.
  • This changelog has RSS and Atom feeds.
  • Compare pages for Hyperping, openstatus, Checkly, Cronitor, Gatus and hosted Uptime Kuma.

28 September 2026

  • Support at /support: search the docs and guides, or send a message that becomes a conversation you can follow under Support in the dashboard. Replies come by email from [email protected].
  • Live chat from the bubble on the site and in the dashboard when someone is available, and a message answered by email when nobody is. A chat can be ended from its header.
  • Two-factor sign-in with an authenticator app, asked after the password and after Google and GitHub, with ten backup codes. Owners and admins can require it for the team.
  • Monitor headers and bodies, alert destinations and webhook secrets are encrypted at rest with a key kept outside the database and its backups.

27 September 2026

  • Teams on Pro: invite people by email from Account, Team, as an admin or a member. Pro includes 3 people, $5 a month for each one after, up to 25.
  • Alert destinations belong to the account: one list under Account, Alerts, each ticked on the pages whose alerts go there. Connect Slack picks a channel and comes back with it added.
  • A new page starts from one address: the page is named after the site, a test check runs on the spot, and the site becomes the first monitor. The Monitors tab takes several addresses at once, one per line.
  • The dashboard home lists pages that need attention first: down, slow, stopped checks, open incidents.
  • Appearance shows the page before it is saved, in light and dark.
  • Subscriber mail comes from the page by name, shows its logo, and opens the incident's own page. Maintenance reminders can go a day before, an hour before, both or never.
  • A down alert says since when and from which locations. An open incident with no update for an hour sends a reminder to post one.
  • Certificate and domain monitors show the date they expire, in the dashboard, the API and MCP.
  • Security, subprocessors and data processing agreement pages at /security, /subprocessors and /dpa.

26 September 2026

  • An incident gives each monitor it names a state while it is open: degraded, partial outage, major outage or no change. Rows under a maintenance window say Under maintenance.
  • An incident can start in the past or be entered once it is over, which files it in the history and tells nobody. Every update has a Tell subscribers box, and a posted update can be corrected without a mail.
  • Pointing at a bar names the incidents that touched it, and components draw a strip of the states they were in.

25 September 2026

  • Every incident and maintenance window has a page of its own, and older ones are listed by month under Incident history: 30 days on Free, 90 on Hobby, a year on Pro. The status page itself lists the last 7 days.
  • Get updates and Contact support sit under the headline, and every open page offers its RSS and Atom feeds.
  • A page can open on 7 days, 90 days or a year instead of 24 hours, and can fold groups where everything is up.
  • Links on a status page take a shade of the page's colour that reads in both themes. Pro pages can leave out "Powered by StatOSS".
  • Incidents have a Resolve button, the Incidents tab lists what is open first, and it says who a post reaches.
  • The Alerts tab saves every destination with one button. A monitor can be added as example.com, and without a name.
  • The automatic incident email to subscribers can be set to Never.
  • Email goes out through Amazon SES. A page takes as many subscribers an hour as sign up; the limits per visitor stay.
  • An alert address other than your account's gets a link first. Alerts go there once it is opened, and keep going where they went until then.
  • Sign-up, password reset and the subscribe box run Cloudflare Turnstile, a browser check that stays out of sight unless Cloudflare wants a click. One address gets at most three confirmation emails an hour.

24 September 2026

  • A still-down repeat goes by email at most every 30 minutes and 24 times in one outage. Slack, Discord, PagerDuty, Opsgenie, ntfy and webhooks keep the page's interval.
  • The subscribe box takes five sign-ups from one visitor in ten minutes, ten an hour across all pages, and 60 an hour on a page. A page sends at most five test emails an hour.
  • The 7-day view of a status page refreshes every five minutes, the 90-day and year views every fifteen. The last 24 hours and the current state still follow every check.
  • Times follow the visitor. Status pages and the dashboard show every time in the visitor's own time zone, and the page footer names it; maintenance windows are entered in your own zone. The zone set under Appearance shows until the page has loaded. Alerts and emails stay in UTC.
  • Ashburn, USA is a check location, next to Aarhus, Copenhagen and Falkenstein. More are coming.
  • Pick the check locations whose readings count toward response times, under Appearance, and a monitor can pick its own under Response times from. The others still check up and down, draw no line, and are listed in the legend as up and down only; they never make a monitor slow.
  • Checks go over IPv6 where the site has an IPv6 address. Over IPv4, Cloudflare answered checks from Falkenstein through Amsterdam, Marseille or Sofia, which added about 100 ms to readings of sites behind it.
  • Each check looks its host up once and connects to the address it found.

22 September 2026

  • A delivery record. Every alert and every subscriber message is on the page's record: when, what, to where, and whether it got through, with the other side's answer when it did not. A send that did not get through is tried again after one, five and fifteen minutes. A refused destination says so where it is set up.
  • Stale is not up. Once a monitor's checks stop arriving, the page, the badge, status.json and the dashboard say when it was last checked, in grey, instead of showing an old state as current. A page with no monitors says it is not checked yet.
  • The status page in order: incident cards follow the headline, worst first and the ones somebody wrote on before the ones a check opened, which fold into one card. The budget sentence sits in the footer, the zone is stated where a time is, a monitor named by an incident links to its card, and a post-mortem is set as headings and paragraphs. A location whose checks stopped is marked in the legend.
  • The dashboard names what is down and what is slow, lists failing monitors first, leads a resolved incident with its post-mortem, marks paused and stale monitors, and has the reorder arrows on every card.
  • A fourth setup step on the overview: the checks are running, alerts have an address, and a test alert got through.
  • The owner's accent, or ink, on every pressable thing on their page: buttons, links, focus and selection. Plum stays on statoss.com. Signal colours mean check results only; the dark theme sits a step off the product frames and sinks its fields; red and amber pass AA.
  • The pages agree with the plans: one list of check locations behind every sentence about them, the Free figure at five-minute checks, plan cards that say what Pro adds to Hobby, a current-plan mark on billing, feeds that carry a window's times, each update's status word and the post-mortem, a 404 with a way out, and sign-in errors that reach the login page.
  • Browser journeys run in CI at desktop and phone width, every screen measured for sideways overflow.
  • Every bar on a strip opens a drawer with the checks behind it: time, status, response time, the location each ran from and what the second location said, with the bar's totals and the mean per location above. On the public page and in the dashboard.
  • Following a vendor is a tab on the add card now. Pick the vendor or paste a status page address, and tick the parts you depend on from the page as it is, each with its state right now. Several ticks add several components at once. Editing one picks its part from the same list.
  • On the public page, vendor components sit in their own section, Third-party services, one compact row each with whose report it is. A vendor's trouble no longer moves the headline, the badge or status.json's page status; its section says how many are degraded or down.
  • A vendor that cannot be read for 30 minutes lets its component go back to operational, and it can be set by hand until the vendor answers again.
  • The legend lists check locations on a line of their own, and location names carry their country.

21 September 2026

  • Locations: on Hobby and Pro every check location runs each monitor in turn. The strip draws a response-time line per location, the readout under it gives each location's figure, and in the dashboard a failed run names the locations that saw it. A switch under Appearance takes the lines off the public page.
  • Drafts on Pro: a button on the update box and the post-mortem box writes the text from the failed checks, their errors and locations, the response times, deploy markers and the updates so far. It fills the box; posting is still yours. Twenty a day.
  • Vendor components on Pro: a component can follow a vendor's status page, or one component on it. Its state follows the vendor's, the vendor's open incident shows under it with a link, and the monitors tab offers to open an incident from it. Statuspage, incident.io and StatOSS pages work; sixty vendors are listed by name.
  • Add to Slack on Pro pages: a visitor connects a channel and it gets the incident and maintenance updates they ticked. A channel counts as one subscriber.

17 September 2026

  • Hobby pages choose their address. Free addresses are still assigned.
  • Pro holds 100 monitors across its pages, 50 per page. The limit used to be per page only.
  • The pricing page states the history the page shows and how long raw checks are kept, the subscriber limit (1,000 per page), and the difference between password-protected and private pages.
  • Subscriber blocks and overage: the Subscribers tab shows subscribers against the allowance, sells blocks of 1,000 for $5 a month, and has an overage switch at 1¢ per subscriber a month. Both are billed with the subscription.
  • Export a page's monitors as CSV from the Monitors tab. The file imports back.
  • Mail to subscribers can use its own SMTP account (SUBSCRIBER_SMTP_*), separate from alert mail.

14 September 2026

  • On a page that shows deploy markers, the legend above the strips now explains the dashed line.
  • Checkpoints are now called monitors, the word other uptime tools use. The dashboard, the docs, the API and the MCP tools say monitor; old dashboard links, the /checkpoints API paths, checkpointIds, list_checkpoints and create_checkpoint keep working, and answers, status.json and alert webhooks still carry the old field names next to the new ones.
  • A pass over the whole product for bugs and copy drift. Checks, alert destinations and webhook subscribers now refuse private and internal addresses and follow redirects only to public ones. Unsubscribe links live on statoss.com and keep working after a page changes its address. The account export holds incidents, templates, subscribers, deploy markers and the hourly totals as well as every check. Delete, revoke and remove buttons ask first, and so does moving between plans. Read-only API keys see only the MCP tools they can call. The slow threshold tops out at 9,999 ms, under the ten-second timeout. A Free page with an uptime target keeps 35 days of hourly totals so its budget line covers the month.
  • A REST API at /api/v1 with keys made under Account, API keys. A key reads, or reads and writes, and reaches every page or one page. Pages, monitors, incidents, maintenance, updates and deploy markers, described in OpenAPI at /api/v1/openapi.json.
  • Two MCP endpoints: a read-only one next to every page (/mcp) with get_status, list_incidents and get_error_budget, and a keyed one at /api/v1/mcp that can open incidents, post updates, add monitors and mark deploys. Each page also has an llms.txt.
  • Deploy markers: post a version from CI and a dashed line with the version appears on every strip in the dashboard. A switch under Appearance shows them on the public page too.
  • Import from UptimeRobot, Better Stack or Statuspage, or any CSV with a URL column: paste the export, see what each row becomes, tick what to bring. Statuspage incidents come along as history.
  • The docs are now one section per thing, with an API reference rendered from the OpenAPI document.
  • Six more kinds of monitor: TCP port, DNS, ping, certificate expiry, domain expiry and heartbeat, picked when adding one. Certificates are checked hourly and fail inside a warning window you set; a heartbeat gives your cron job a URL to ping and goes down after two checks in a row find no ping.
  • Components: a part of the product with no check, such as a mobile app. Its state is set by hand or by an incident that names it, it shows no strip or uptime figure, and it never counts against the plan.
  • A logo, a favicon, an accent colour, a fixed light or dark theme, a description under the headline, a support link in the footer, and times shown in the zone you choose. A switch keeps the page out of search engines.
  • Password-protected pages on Pro. The badge, status.json, the feeds and the widget are locked too, with a key for embeds.
  • Incident templates: a saved title, status, impact, first update and set of monitors, picked at the top of the incident form. Maintenance windows now end by themselves with a final update, and subscribers are reminded an hour before one starts (when it was planned more than two hours ahead) and told when it ends.
  • Subscribers can pick which monitors they want to hear about. Webhook subscribers, added on the Subscribers tab, get every update as signed JSON. An Atom feed next to the RSS one.
  • Settings split into General, Appearance, Access, Alerts, Domain and Share and embed.
  • An operations page for staff, in five tabs: what needs a look, accounts and plans, pages and checks, every check location with its machine's load, memory and disk, and the database by table.
  • The database now streams off the server to object storage in the EU as it changes, with 7 days of point-in-time restore. A standby server in Germany keeps a live copy, serves the public pages from it within a minute of the main server going quiet, and takes over completely a couple of minutes later, with nobody involved.
  • Raw check results are kept for 14 days on Hobby and Pro and 7 days on Free; the hourly totals behind the 7-day, 90-day and 1-year views are kept as before. Only the list of failed runs under a strip is shorter.
  • PagerDuty, Opsgenie and ntfy as alert destinations, next to Slack, Discord and webhooks. A monitor going down opens an incident on PagerDuty or Opsgenie and its recovery closes it. Destinations sit in their own card and only the ones in use are shown.
  • Incidents carry an impact that sets the headline while they are open, whatever the checks say, and the monitors they name are marked on the page. Title, impact, affected monitors and maintenance times can be edited without posting.
  • Settings split into Page, Alerts and Share and embed. A test-alert button says which channels took it. The badge, JSON, feed and widget are ready to copy.
  • Check now reports its result on the card, the edit form can test a URL, monitors can be reordered, and the slow threshold hint shows the monitor's 24-hour average.
  • Incidents and maintenance windows. A monitor going down opens an incident on the page and resolves it on recovery; the Incidents tab opens your own, posts updates, and writes post-mortems. Maintenance windows keep checks but do not count them, and silence alerts.
  • Slack, Discord and webhook alerts on Hobby and Pro, and a repeat notice while a monitor stays down.
  • A second server on another network confirms every failure before it counts.
  • A slow state: set a threshold on a monitor and two slow responses in a row mark it slow, with its own alert and its own colour on the page.
  • Monitor groups on the public page.
  • status.json, an SVG badge with a shields.io endpoint, an RSS feed of incidents and a one-line widget next to every page.
  • Request options on a monitor: method, headers, body, and a keyword the response must contain or must not.
  • Email subscribers on Pro: a box on the public page, confirmation by link, mail on incident updates and on outages longer than a threshold, an unsubscribe link in every mail.

13 September 2026

  • Docs and this changelog.
  • The Account page downloads everything the account holds as one JSON file, and deletes the account after the email address is typed to confirm.
  • A fresh account starts on the setup for its first status page instead of an empty list.
  • After a checkout, the billing page picks up the new plan by itself instead of waiting for a reload.
  • A custom domain stays on the page after leaving Pro but is no longer served: visitors are sent to the StatOSS address until the page is back on Pro.
  • Paused monitors have their history trimmed to the plan's window too, and the public page only offers ranges the plan keeps history for.

11 September 2026

  • Moving between Hobby and Pro takes effect at once, prorated. Cancelling from the billing page keeps the plan to the end of the period, and can be undone until then.
  • A Free plan: one status page with one monitor, checked every 5 minutes, 7 days of history, alerts included. No card.
  • Page addresses are assigned from the name on Free and Hobby. Pro picks its own.
  • Your own domain on Pro: a CNAME to edge.statoss.com, a DNS check on the settings page, and a certificate issued on the first visit.

10 September 2026

  • StatOSS opens: hosted status pages with accounts, a dashboard, and billing through Polar. Sign in with email and password, Google, or GitHub.
  • Down and recovery emails after two failed checks in a row and one success.
  • Privacy and terms pages, a sitemap, and llms.txt.

Earlier history lives in the standalone repository, which the hosted version grew out of. The docs describe the current state. Follow the changelog by RSS or Atom.