← Back to all sparks
U

updown.io

ANALYTICS
Velocity2.5

updown.io now checks that ports stay closed, not just that services stay up.

uptime-monitoringpulse-crontcp-checksglobal-probessolo-maintainerobservability
Current state
updown ships infrequently but substantively, maintained by a single developer. The past year added Pulse monitoring for inbound heartbeats, body string matching for those pulses, two probe-location changes, and a ten-year history chart on status pages. The newest release adds closed-port monitoring, so a check can assert that a TCP port is unreachable — firewall verification rather than an availability test.
Where it's heading
The arc is widening what a single check can assert rather than expanding elsewhere in the product. Pulse brought inbound heartbeats alongside outbound polling, string matching let a pulse fail on its content instead of only its absence, and closed-port checks invert the assertion entirely. Probe-network work runs in parallel — Toronto replaced the retired Montreal node for IPv6, Cape Town came online in 2025 — and every release carries a tail of small fixes rather than a second headline feature.
Prediction
The next release most likely extends conditions on the existing check types again rather than introducing a new monitoring modality, given that each of the last three headline features reused the same probe machinery. The recurring maintenance tail points to continued consolidation around alerting, recipients, and API access.

Recent moves

  1. 5d ago

    🛑 Closed port monitoring

    Closed port monitoring lets a check pass when a TCP port is unreachable, inverting updown's usual up-means-healthy assertion into a firewall verification. It follows the pattern of the past year: new things a check can assert, running on the probe network already in place. The rest of the release is maintenance — a duplicate SSL alert regression, SSRF hardening for webhooks and chat integrations, and bulk-recipient UX work.

    View source ↗
  2. 1mo ago

    🇨🇦 New Toronto monitoring location

    A Toronto node replaces the retired Montreal one, aimed at IPv6 reliability for North American checks — the second probe-location change in under a year. The accompanying items are operational: pagination for accounts with many checks, request string matching for pulse checks, and automatic removal of the Teams webhooks Microsoft deprecated.

    View source ↗
  3. 4mo ago

    String match with pulse checks

    Pulse checks can now fail on body content rather than only on a missing ping, so a cron job that runs but reports failure gets caught. This is the first extension of the Pulse modality since it shipped, and the template for the assertion-widening that follows it.

    View source ↗
  4. 9mo ago

    New Location: Cap Town, South Africa 🇿🇦

    Cape Town joins the probe network, continuing the geographic expansion that runs alongside the feature work. The release doubles as a warning: accounts doing IP filtering without the matching option enabled would see the new location start failing their checks.

    View source ↗
  5. 10mo ago

    📉 New 10y performance history chart

    A custom SVG chart puts ten years of uptime and performance history on every status page, daily for recent months and monthly further back. This is presentation rather than monitoring capability, but it surfaces retained data that was previously hard to get at.

    View source ↗
  6. 1y ago

    ⏰ Pulse monitoring

    ⚡ SPARK

    Pulse monitoring added inbound heartbeat checks after eleven years of outbound-only polling, reaching cron jobs and services with no public endpoint. Every assertion feature since — body string matching, and now closed-port checks — builds on the surface this opened.

    View source ↗