Uptime monitoring for Netlify SaaS
Netlify ships static frontends and serverless functions behind a global CDN. Your browser can load the marketing site while the checkout function times out — and Netlify’s deploy UI will not tell customers which URL to watch during an incident.
Production monitoring needs a stable HTTPS health URL (often a Netlify Function) plus an external probe that runs on a schedule, not when you happen to refresh a tab. StillOnline checks that URL from the internet, hosts a status page, and alerts you through the StillOnline Telegram bot, Slack, or email.
Quick answer
Add a Netlify Function (or edge function) at /api/health returning HTTP 200. Register that production URL in StillOnline for five-minute external checks, an auto-generated public status page, and owner alerts via the StillOnline Telegram bot, Slack, or email. Free includes one project and one monitored URL — usually your API or function health, not the marketing homepage.
Netlify architecture and what to probe
Not every Netlify site needs the same probe. A brochure site might only matter if the homepage is down; a SaaS with Functions behind /api should monitor the path that proves the backend is alive.
Match the check to what paying users depend on. If the API lives on another host entirely, monitor that host first — StillOnline Free allows only one URL per project.
| You run on Netlify | Monitor this |
|---|---|
| Static marketing site only | Main site URL only if downtime blocks business |
| SPA + API via Functions | Function health URL (e.g. /.netlify/functions/health or /api/health) |
| Split frontend on Netlify, API elsewhere | Monitor the API host — API-only guide |
Step 1 — Netlify Function health example
Create a small function that returns JSON and 200 without calling slow dependencies unless you intentionally want DB truth in health.
export async function handler() {
return {
statusCode: 200,
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ status: "ok", service: "my-saas" }),
};
}
Deploy, then verify from outside Netlify:
curl -sS -o /dev/null -w "%{http_code}\n" https://your-site.netlify.app/api/health
Redirect chains on / are common on JAMstack sites — probe /api/health directly so StillOnline does not follow marketing redirects. Design notes: health endpoint design.
Step 2 — StillOnline check + status page
When curl succeeds on production, add the same URL to StillOnline so history and alerts stay aligned with integrator docs.
- StillOnline app → new project.
- HTTP check → production Netlify HTTPS URL, GET, expect 200.
- Share the status link in README, onboarding, or support macros — public status page guide.
Step 3 — Alerts
Netlify will not page you on function errors. Connect your Telegram to the official StillOnline bot in settings — Telegram setup. Free: one owner channel; Pro / Ultimate: email, Telegram, and Slack together. Team on Slack? Slack webhook guide.
Netlify-specific pitfalls
Preview deploys with passwords, slow cold functions, and mixed edge/Node runtimes are the usual surprises. Point StillOnline only at production URLs your customers use.
| Problem | Solution |
|---|---|
| Deploy previews password-protected | Monitor production branch URL only |
| Function timeout | Keep health handler under 2 s |
| Edge vs Node runtime | Pick one runtime that can reach dependencies you ping |
Similar JAMstack patterns on Vercel: Vercel guide.
Related guides
FAQ
Should StillOnline monitor the Netlify homepage or the API function?
Monitor the URL that defines product availability — usually the function or API health route, not the marketing / with redirects. If the API lives off Netlify, register that host instead — API-only checks.
Does StillOnline work with Netlify Identity or password-protected sites?
External probes need a public GET health path without auth. Put health on production branch URLs customers use; skip password-protected deploy previews.
Can StillOnline monitor Netlify static plus a separate backend?
Yes — register the backend health URL first. A second check for the Netlify site fits Pro (more URLs per project). Free allows one URL — usually the API health endpoint.
How can AI agents read StillOnline Netlify uptime without the dashboard?
On Pro, use StillOnline MCP or public JSON — REST public status. The hosted status page stays the human-facing link for customers.