I built my own uptime monitor because UptimeRobot felt cluttered — here's what I learned
The problem
I've been using UptimeRobot for a while. It works, but every time I opened it I felt like I was looking at a dashboard designed for enterprise teams. I just wanted to know: is my site up? If not, tell me. That's it.
So I built my own.
What I built
PingBoard — uptime monitoring with public status pages. Monitors URLs on a schedule, sends alerts when things go down, and generates a clean shareable status page for your users.
5 monitor types: HTTP, keyword, DNS, API, and heartbeat.
The stack
- Next.js 14 App Router + TypeScript
- Convex — backend, DB, cron jobs, realtime subscriptions
- Clerk — auth
- Resend — email alerts
- Lemon Squeezy — payments (Stripe isn't available in India)
- Framer Motion — animations
The interesting parts
Realtime status pages without WebSockets
Convex's reactive queries mean the public status page updates instantly when a monitor goes down — no polling, no manual WebSocket management. Just a useQuery hook and it works.
The ping loop
A Convex cron fires every 30 seconds, finds monitors that are due for a check, and schedules individual check actions per monitor. Each check runs independently — one slow site doesn't block others.
Heartbeat monitoring
Instead of PingBoard pinging your service, your service pings PingBoard. Useful for cron jobs and background workers. If PingBoard doesn't hear from your job within the expected interval × 1.5, it opens an incident.
Payments from India
Stripe isn't available in India so I went with Lemon Squeezy. Acts as merchant of record — handles VAT, GST, tax compliance automatically. Checkout was live in a day.
What I'd do differently
- Started with Convex from day one — initially considered Supabase but switched early and never looked back
- Underestimated how much time auth takes — Clerk saved probably 2 weekends
- Should have verified the Resend domain earlier (still in sandbox mode — alerts only reach verified addresses)
Where it is now
Live at ping-board-monitor.vercel.app. Free tier, no credit card. Built for myself, a friend convinced me to open it up.
Would love feedback — especially from devs who've felt the same frustration with existing tools.
Top comments (0)