Publish a status page that checks your services and updates itself
Published 2026-10-13
Most small teams depend on a handful of things being up: the website, a booking or contact form, a checkout link, maybe an API another tool calls. When one of them breaks, the first signal is usually a customer writing in to say it does not work. By then it may have been down for hours, and nobody can say when it started or whether it is fixed. A status page answers that question for everyone at once, but keeping one current by hand is a chore nobody remembers to do.
What a chat cannot do alone
ChatGPT or Claude can tell you how to check whether a URL is responding, and it can write the script in a minute. It cannot run that script every few minutes, because a chat only does work while you are typing to it. It has no place to keep a history of results, no public page it can update, and no way to warn you when something fails at two in the morning. The check you asked for ends up as code in a message, waiting for somewhere to run.
What your assistant builds with Sails
Sails is a coding agent you connect over MCP, with cloud deployment built in. Your assistant writes the code and Sails runs it in the cloud. For this job it builds four pieces.
A list of things to check. Each entry has a name, a URL, and what a healthy answer looks like, such as a 200 response or a word that should appear on the page. You can add or remove entries by asking your assistant.
A scheduled job. Every five minutes it requests each URL, notes whether the answer was healthy and how long it took, and writes one row per check into a table. It is ordinary shell code with no model in the loop, so it runs the same way every time and costs nothing per check.
A status page on your domain. It reads the latest rows and shows each service as up or down, with the time of the last check and a short history for the past week. Anyone can open it, and it never needs a manual edit.
An alert. When a check fails twice in a row, the job sends an email from your mailbox, and it sends a second note when the service recovers.
Why it works
The checks run whether or not anyone is paying attention, so you hear about a problem from your own mailbox instead of from a customer. The table keeps an honest record of when something failed and when it came back, which is useful when someone asks what happened. Because the page reads from the same table, it cannot drift out of date.
Hand it off
Copy this into your assistant:
Add Sails from https://sails.app/start. Build me a status page on my domain. Keep a list of services to check with a name, a URL, and the expected response for each: [services]. Write a scheduled job that runs every five minutes as plain shell code with no model involved, checks each service, and records the result and response time in a table. Publish a public page that shows each service as up or down, the last check time, and the past seven days. Email me from my mailbox when a service fails two checks in a row and again when it recovers. Ask me anything you need before you start.