OpenPing
Uptime monitoring that runs in your own Cloudflare account



The problem
Uptime monitors are subscriptions that keep your data on someone else's servers, and they count every hour an app is meant to be asleep as downtime. Free hosting like Render sleeps by design, so a plain monitor either reports a fake outage every night or keeps the app awake around the clock.
The build
OpenPing deploys into your own Cloudflare account. A Worker runs HTTP, heartbeat, DNS, TCP and domain-expiry checks on a 12-minute schedule, D1 keeps compact uptime history, and public status pages, an embeddable widget and an SVG badge show the results. Checks are schedule-aware: an app is watched (and kept awake) only during its operating hours, and outside them it shows as "Scheduled off" without costing uptime. Anyone can use its free tools without signing up: "Is it down?", uptime and subnet calculators, a cron tester, and DNS and MX lookups.
Try OpenPing
Use its free tools with no sign-up ("Is it down?", DNS and MX lookups, a cron tester), or deploy your own on Cloudflare's free plan. I check it every day.
Stack & choices
- Cloudflare Workers · Hono · ZodThe API, the scheduled checks and the public status feed
- Cloudflare D1Monitors, incidents and uptime history, rolled up from samples to daily and monthly
- React 19 · Vite · Tailwind v4The admin app (an installable PWA), status pages and free tools
- Resend · Web Push · DiscordAlerts by email, phone notification, Discord or signed webhook
Process notes
- 1
Schedule-aware checking is the idea the rest follows: Render's free tier sleeps between visits, so OpenPing keeps the apps awake only when they matter and never counts the off-hours as an outage.
- 2
It runs live at openping.n8builds.dev, watching the Render demos on the developer portfolio (Echo, Scout and GeminiGPT); the portfolio's status pills read its public feed.
- 3
Secrets are handled like a product: monitor settings are encrypted with AES-GCM, heartbeat tokens are stored only as hashes, and first-run setup needs a one-time setup token.
- 4
It stays inside Cloudflare's free plan: one scheduled run every 12 minutes, at most 200 checks per run.
Recent activity
Full log for OpenPingComplete list workspace actions (opens in a new tab)
and 18 more changes
Brandable accent for the embed widget + badge label color (opens in a new tab)
and 7 more changes
Admin UI + slug-aware public pages for categories (opens in a new tab)
and 10 more changes
Distinct "Suspended" monitor status (detects Render free-tier suspension) (opens in a new tab)
and 17 more changes