About Upwatch
Upwatch is a cloud-hosted uptime monitoring service built by a solo SRE who got tired of finding out his sites were down from customers.
10 monitors free. No credit card. No sales calls. No VC.
The Story
I'm Minor Keith. I've spent years in SRE and infrastructure — oncall rotations, incident retrospectives, and the 3am alerts that come with the territory.
Every monitoring tool I used fell into one of three categories:
- Overpriced — $20+/mo just to know if a website is returning a 200
- Self-hosted — Uptime Kuma is great until you realize you're maintaining infrastructure to monitor your infrastructure
- VC-funded — works great until the "pricing update" email lands and your $7 plan becomes $29
So I built my own.
Upwatch checks your websites and APIs on a schedule. When something breaks, you get an email. When it comes back, you get another one (on Pro). You can share a public status page with your customers. That's it.
What Makes This Different
It's one person. There's no growth team optimizing your onboarding funnel. No investor pushing for enterprise features you don't need. No 47-panel dashboards.
The free tier is real. 10 monitors with 5-minute checks, email alerts, a status page, and full API access. Not a 14-day trial. Not "free until we decide it isn't." Free.
The pricing is honest. Pro is $5/month. Unlimited monitors, 30-second checks, Slack/Discord/webhook alerts, custom domains on status pages, and recovery notifications. No per-seat fees. No usage caps on Pro.
The code is straightforward. FastAPI backend, Vue frontend, MongoDB, Redis. Distributed workers that scale horizontally. Runs on a single server. Nothing fancy — just reliable.
The Stack
For the engineers who want to know what's under the hood:
- Backend: Python 3.12, FastAPI, Uvicorn
- Frontend: Vue 3, Vite, Pinia, Tailwind CSS v4
- Database: MongoDB 8
- Queue/Cache: Redis 7
- Workers: Distributed check execution via Redis BRPOP
- Alerts: Resend (email), Slack, Discord, webhooks
- Infrastructure: Docker Compose, Nginx, Cloudflare
- Billing: Stripe
- Status Pages: Custom domains via Cloudflare for SaaS
Everything runs in containers. The monitoring workers are separate from the API — they scale independently and shut down gracefully without dropping in-flight checks.
What I Believe
You shouldn't need to pay to know if your site is up. Basic monitoring is table stakes. The free tier exists because a side project with 3 monitors deserves the same alerting as a production service.
Monitoring should be boring. It should work in the background and only bother you when something is actually wrong. No dashboards to stare at. No alert fatigue.
Simple beats complex. Three check types: HTTP, TCP, and Ping. One dashboard. One status page per free account. The product does what it says and nothing else.
Contact
Questions, feedback, feature requests, or just want to say hi:
Email: [email protected]
I read every message.
Upwatch is built and operated by an SRE living on caffeine.