I Built a Self-Hosted Uptime Monitor in 1 Week Because UptimeRobot Only Lets You Monitor One Site for Free

Published: (April 5, 2026 at 01:10 AM EDT)
3 min read
Source: Dev.to

Source: Dev.to

The Problem

I was building my project and needed to monitor its uptime. I went to UptimeRobot — and hit a wall. The free plan only lets you monitor one website. I had multiple services running and didn’t want to pay just to know if my own server was down.

So I did what any developer does: I built it myself.

What I Built

Site‑Monitoring (Nexus) – a fully self‑hosted, open‑source uptime monitoring tool that:

  • 📡 Monitors unlimited websites — add as many URLs as you want
  • 📊 Shows real‑time analytics — response times, status codes, uptime history
  • 🎨 Interactive dashboard — built with React + Framer Motion
  • 😴 Anti‑sleep engine — keeps itself alive on free platforms like Render/Vercel
  • 🏠 100 % self‑hosted — your data, your server, zero subscription fees

Live Demo

pingbot.yogender1.me

GitHub

Tech Stack

  • Frontend: React 18, Vite, TailwindCSS, Framer Motion
  • Backend: Node.js, Express.js
  • Database: PostgreSQL
  • Jobs: Cron jobs (pinger.js)
  • Hosting: Render (backend), Vercel (frontend)

The Hardest Part

Getting the anti‑sleep engine right was tricky. Free‑tier platforms like Render spin down your server after 15 minutes of inactivity, so the monitor itself would go down.

I solved this by building a self‑ping system using cron jobs that periodically hit the backend’s own endpoint. Simple in concept, but it required careful debugging to avoid hammering the server.

Architecture

Nexus-Core/
├── backend/
│   ├── db.js           # Database connection
│   ├── pinger.js       # Background site poller + self‑ping
│   └── server.js       # Express API
└── frontend/
    └── src/
        ├── api.js      # Axios API calls
        ├── App.jsx     # Main React app
        └── index.css   # TailwindCSS

What’s Next

A common criticism: single‑server monitoring can give false positives (e.g., if the monitoring server goes down, it may report external sites as down).

Roadmap: add multi‑region monitoring by checking from several servers in different locations.

In the meantime, Nexus is perfect for:

  • Monitoring your own projects and APIs
  • Self‑hosted infrastructure
  • Anyone who wants full control without paying monthly

Contributing

I built this in one week and there’s a lot more to add. I’ve opened four beginner‑friendly issues:

  • 🌙 Dark/light mode toggle
  • 📧 Email alerts when sites go down
  • 📄 CSV export for uptime logs
  • 📝 CONTRIBUTING.md improvements

First‑time contributors are welcome – the codebase is small, clean, and well‑documented.

Show Some Love

If you find it useful, a star on GitHub helps a lot!

0 views
Back to Blog

Related posts

Read more »