About GeoPulse
Most monitoring tells you whether a site is up. It rarely tells you up from where. A service can answer in 30 ms in Frankfurt and time out in Singapore, and a single-location checker will call that green.
GeoPulse measures the same targets from several countries at the same moment and puts the answers side by side. The paid services keep that behind their expensive tiers. This one is free, and it runs on a handful of cheap and free VPS boxes.
A father and son project
I write the backend — the probe agent and the hub. My twelve-year-old
son owns this dashboard: the HTML, the layout, the charts. That
constraint is why there is no build step here, no framework and no
bundler. Plain HTML, plain fetch, Chart.js. If you open
the source, you can read it.
How it works
Each probe runs its checks on a schedule, aggregates on its own CPU and pushes results to the hub every minute. The hub never dials a probe. That means a probe needs no inbound port, no public IP and no certificate, so it will run behind NAT on almost anything. Every payload is signed and encrypted regardless of transport.
Raw results are kept for three hours. Beyond that they collapse into hourly rollups for a month, then daily rollups forever — each carrying a fourteen-bucket latency histogram, so any percentile stays computable at any zoom level. Five years of history fits in about 65 MB.
There is no ICMP check. Latency is measured as a TCP handshake to a known-open port, which needs no raw sockets and no root, and works in an unprivileged container anywhere.
Who built it
Naser Rafinia — backend engineer.
Add a vantage point
The map is thin across Africa, South America and most of Asia, and that is exactly where the interesting results are. If you have a spare box in an under-represented place, the Probes page has the one command you need.