kPong
Polls your targets every second, scores spikes against a rolling median, and tells you once when a link goes bad.
source(opens in new tab)The problem
"The internet feels slow" is not a bug report. A single ping tells you a host answered once; it says nothing about jitter (variation in latency between probes), brief outages, or the link that degrades every evening at eight. kPong exists to turn that vague feeling into something you can watch, compare, and export.
Architecture
kPong is a terminal application built with Bun, Ink, and React, compiled to standalone executables for Windows, Linux, and macOS. A setup wizard gets you from zero to watching targets in under a minute; after that, a scheduler gives each target its own interval timer (1 s polling by default), never lets a target overlap its own previous probe, and caps concurrent pings globally. Stopping or reloading aborts everything in flight cleanly - a generation counter (a run identifier that rejects older results) makes sure stale results from a previous run cannot leak into the current one.
The interesting part is how it decides what counts as a problem. Each target keeps a rolling history (60 samples by default) whose baseline is the median (the middle value after sorting samples), not the mean, so one outlier cannot drag it. A spike fires only when a sample beats that baseline by an absolute margin and a relative one and jumps clearly above the previous sample - then the target enters a cooldown (delay before another alert can fire) and rearms only after latency settles back near baseline. One sustained incident produces one alert, not sixty (the pager remembers).
Everything is operable while it runs: add, edit, mute, and disable targets from the keyboard (arrows or Vim keys), reload config on demand, and watch the YAML theme file hot-reload - themes control layout proportions and markers, not just colors. Alerts fan out to an in-app feed, native desktop notifications, and sound on all three platforms. History persists to a local SQLite database, and snapshots export as timestamped CSV and JSON for when you need to prove the problem to someone.
Boundaries
kPong observes reachability and latency from where it runs. It shows you that a link is degrading and when; it cannot tell you why, and it does not try to. It is also not a monitoring platform - no server, no accounts, no hosted anything; config, history, and exports are ordinary local files. It is the tool you open when something feels wrong, and the one you leave running until you can prove it (CSV attached).
There is a longer argument about why a ping is not monitoring in the accompanying note.