Can I code this? A Website Uptime Monitor

A scheduled job pinging a URL and emailing you if it fails is genuinely simple — this register's UptimeRobot itself scores near the top for exactly this reason.

Build it
Effort: an eveningRunning cost: $0/mo to start

Why CanICodeThis says Build it

  • A scheduled job that requests a URL every few minutes and records the response code and timing is a well-documented pattern
  • Sending an email alert when a check fails (and another when it recovers) is one transactional-email call
  • A history log and simple uptime-percentage calculation is ordinary aggregation

The parts that'll cause problems

  • Checking from multiple geographic regions (to distinguish a real outage from a local network issue) needs infrastructure in more than one place
  • SMS or phone-call alerts for critical downtime need a real telephony integration
  • A public status page sharing uptime with customers shares this register's own Statuspage-style build spec, a real additional feature

How I'd build this

frontendAstro or Next.js
databaseTurso (SQLite)
emailResend
hostingCloudflare Pages

MVP scope

  • A scheduled job checking a URL every few minutes
  • Email alert on failure and on recovery
  • A history log and uptime percentage

Postpone to v2

  • Multi-region checking
  • SMS/phone alerts for critical downtime
  • A public status page

What it actually costs to build

AI agent — with a subscription (Claude Pro/Max, Cursor, etc.)$0 marginal
AI agent — pay-per-use API, no subscription$16–$27 one-time
Hosting, once it's running$0/mo (free tier)
Domain name, if you want your own~$12/yr

Existing tools solving a similar problem typically run $7–$29/mo — see how they compare below.

The build prompt

Build me an uptime monitor: a scheduled job checking a URL every few minutes, recording response code and response time, with an email alert on failure and another on recovery. A history log and an uptime-percentage calculation. Single-region checking is a reasonable starting point.

← try another idea · browse the full register