Changelog

A record of everything we've shipped. Latest releases first.

May 27, 2026

Latest

Domain-expiry monitoring and one-click setup. Point Upwatch at a domain and it finds what's worth watching — including the renewal date no uptime check catches.

New

Domain Expiry Monitoring

  • arrow_forwardAdd a Domain monitor and Upwatch tracks your domain's registration (WHOIS) expiry — the outage no uptime check warns you about
  • arrow_forwardEscalating reminders at 30, 14, 7, 3, and 1 days before expiry, and a full incident if the domain actually lapses
  • arrow_forwardFree and uncapped on every plan — domain monitors never count against your monitor limit
  • arrow_forwardThe monitor detail page shows registrar, expiry date, name servers, and DNSSEC status
New

Autopilot — Scan a Domain

  • arrow_forwardNew Scan a domain button on the dashboard — enter your domain and Upwatch probes it and proposes monitors to create: apex uptime, www, SSL certificate, and domain expiry
  • arrow_forwardPick what you want from a checklist and create them in one step — recommended items come pre-selected
  • arrow_forwardRe-scanning is safe — anything you already monitor is flagged Already watching and won't be duplicated
Improved

Alert Sender Pinned

  • arrow_forwardDowntime, recovery, and SSL/domain-expiry alert emails always send from [email protected]

May 12, 2026

Launched blog.upwatch.dev as a static markdown site (replacing the Ghost CMS that never shipped a post), with two starter posts. Tools pages at tools.upwatch.dev got long-form content and structured data to help Google index them.

New

Blog launched at blog.upwatch.dev

  • arrow_forwardStatic markdown blog prerendered with Vite SSG — no CMS to maintain, posts live in blog/posts/*.md in the repo
  • arrow_forwardCron monitoring for solo devs, in under 5 minutes — practical walkthrough of heartbeat monitoring with snippets for curl, Python, GitHub Actions, and crontab
  • arrow_forwardSix free tools we built so you don't have to alt-tab — tour of every tool at tools.upwatch.dev with "when to use it" notes
  • arrow_forwardBlog link added to the nav and footer on upwatch.dev and tools.upwatch.dev
Improved

Free tools pages — long-form content and JSON-LD

  • arrow_forwardEvery tool page now ships 400–600 words of behavior, interpretation, common pitfalls, and FAQ — fixes the "Crawled, currently not indexed" status these pages were stuck in
  • arrow_forwardEach page includes SoftwareApplication, BreadcrumbList, and FAQPage structured data for richer Google results
  • arrow_forwardTool pages cross-link to each other with descriptive anchor text, not just icon tiles

May 4, 2026

Security hardening across API key storage, monitor probing, and alert delivery. No action required — your existing keys, monitors, and integrations keep working.

Improved

API Keys Hashed at Rest

  • arrow_forwardYour API keys are now stored as SHA-256 hashes — the plaintext value lives only in your possession
  • arrow_forwardIf you ever lose your key, regenerate it from Settings → API rather than trying to recover the old value
Improved

Stronger Monitor URL Validation

  • arrow_forwardClosed a DNS-rebinding edge case: the IP we resolved when you saved a monitor is now pinned through the actual probe, so a URL can't switch to an internal address mid-request
  • arrow_forwardSame protection extended to SSL certificate checks and webhook test sends
Improved

Tighter Auth & Alert Behavior

  • arrow_forwardIf our session cache hiccups, refresh tokens are now rejected rather than accepted by default — you'll be asked to log in again instead of holding a stale session
  • arrow_forwardAlert deduplication is now strict cluster-wide, eliminating a rare path where two regions could each send the same down alert
  • arrow_forwardThe free tools at tools.upwatch.dev now cap response size and limit redirect chains

April 16, 2026

Multi-region monitoring — checks now run from 4 locations worldwide with consensus-based alerting.

New

Multi-Region Monitoring

  • arrow_forwardChecks now run from 4 global locations — New York, Frankfurt, Singapore, and Sydney
  • arrow_forwardRegion picker — choose which regions check each monitor, or leave as "Any" for automatic routing
  • arrow_forwardConsensus alerting — reduce false positives by requiring multiple regions to confirm an outage before firing alerts
  • arrow_forwardPer-region status — see which regions are up or down on the monitor detail page
  • arrow_forwardRegion badges — monitor list shows which regions are assigned at a glance

April 14, 2026

Free website diagnostic tools at tools.upwatch.dev — six tools, no account required.

New

tools.upwatch.dev — Free Diagnostic Tools

  • arrow_forwardSix instant tools — no account, no rate limits for normal use, all stateless
  • arrow_forwardIs It Down? — check whether a site is reachable right now, with HTTP status code and latency
  • arrow_forwardResponse Time Tester — measure how fast a site responds and get a performance rating
  • arrow_forwardSSL Certificate Checker — verify any certificate: issuer, expiry, SANs, and a security grade
  • arrow_forwardHTTP Header Inspector — inspect response headers and get a security score with missing-header callouts
  • arrow_forwardWHOIS Lookup — domain registration details: registrar, creation/expiry dates, name servers, and DNSSEC status. Works for .dev, .app, and all Google-managed TLDs via RDAP
  • arrow_forwardIP WHOIS Lookup — look up any IPv4 or IPv6 address: network owner, country, CIDR range, RIR (ARIN / RIPE / APNIC / LACNIC / AFRINIC), abuse contact, and reverse DNS hostname

April 14, 2026

Sign in with GitHub, improved status pages, and embeddable uptime badges.

New

GitHub OAuth Login

  • arrow_forwardSign up or log in with your GitHub account — no password needed
  • arrow_forwardExisting users can link their GitHub account automatically — if your GitHub email matches your Upwatch account, they merge on first login
  • arrow_forwardEmail is verified automatically via GitHub, so you can start receiving alerts immediately
New

Embeddable Uptime Badge

  • arrow_forwardShields.io-style SVG badge for any monitor at /api/badge/{monitor_id}
  • arrow_forwardEmbed in your README, docs, or website footer to show live uptime percentage
  • arrow_forwardColor-coded: green (≥99%), yellow (95–99%), red (<95%)
Improved

Public Status Pages

  • arrow_forwardUptime history expanded from 30 days to 90 days — see three months of data at a glance
  • arrow_forwardActive incidents now shown in a prominent banner at the top of the page, not just within the day tiles
  • arrow_forward"Monitoring by Upwatch" badge on free-tier status pages (removed for Pro users)

April 13, 2026

Weekly uptime digest — a Sunday morning email showing how your monitors performed over the past 7 days.

New

Weekly Digest Email

  • arrow_forwardAutomatic weekly email every Sunday at 08:00 UTC summarising the past 7 days of monitoring data
  • arrow_forwardShows overall uptime percentage across all monitors, total incident count, and per-monitor breakdown with 7-day uptime and average response time
  • arrow_forwardHighlights your 3 slowest monitors so you can spot performance regressions before they become incidents
  • arrow_forwardSent to all accounts with email alerts enabled — turn off in Settings → Alert Channels if you prefer not to receive it

April 12, 2026

Heartbeat monitoring — passive dead-man's switch checks for cron jobs, backups, and scheduled workers.

New

Heartbeat Monitoring

  • arrow_forwardCreate heartbeats with configurable expected intervals (60s – 7 days) and grace periods
  • arrow_forwardUnique per-heartbeat ping URLs at /ping/{token} — GET, POST, and HEAD all accepted
  • arrow_forwardExplicit /ping/{token}/fail endpoint for scripts that can self-report failure
  • arrow_forwardIncidents open automatically when silence exceeds interval + grace; auto-resolve on next successful ping
  • arrow_forwardFree plan: 10 heartbeats (separate quota from outbound monitors). Pro: unlimited
New

Heartbeat Dashboard

  • arrow_forwardDedicated Heartbeats section in the app sidebar with live status (UP / LATE / DOWN / WAITING)
  • arrow_forwardDetail view shows last ping timestamp, next expected deadline, recent ping history with source IP, and incident timeline
  • arrow_forwardTabbed code snippet generator (curl / wget / Python / PowerShell / crontab / GitHub Actions) with one-click copy

April 11, 2026

Security hardening and alert reliability. One-time re-login required after this update.

Improved

Session Security

  • arrow_forwardCross-site request forgery (CSRF) protection on session refresh and logout
  • arrow_forwardLong-lived sessions are now capped — after enough token rotations you'll be asked to log in again, limiting damage if a token is ever stolen
  • arrow_forwardBilling checkout and portal links are now verified to point at Stripe before redirecting
  • arrow_forwardHeads-up: everyone is signed out once when this update rolls out. Log in again and you're set.
Fixed

SSL Certificate Alerts

  • buildExpiry alerts now fire on the correct calendar day — no more off-by-one near midnight UTC
  • buildNo more duplicate expiry notifications when multiple workers trip the same threshold at the same moment
  • buildFailed TLS handshakes no longer leak resources over time
Fixed

Alert Delivery

  • buildEmail alerts no longer stall if an SMTP server hangs — 15 second hard timeout, then logged and moved on
  • buildHung deliveries are now logged distinctly so you can spot provider issues
Fixed

Settings and UI Polish

  • buildSaving notification preferences now shows a visible error if the save fails — before, it failed silently
  • buildThe "Resend verification email" countdown no longer leaves a timer running after you navigate away
  • buildStatus page custom domain links are now validated before they render — invalid entries fall back to the default slug URL
Improved

Security Headers

  • arrow_forwardContent-Security-Policy now applied to the blog and status page subdomains (previously only the main app had it)
  • arrow_forwardClickjacking protection strengthened on all subdomains via CSP frame-ancestors
  • arrow_forwardPermissions-Policy added to deny camera, microphone, and geolocation by default

April 9, 2026

Click any square on a status page to see what happened that day. Plus latency fixes and docs polish.

New

Status Page Incident Popovers

  • addClick any day on the 30-day uptime ribbon to open an incident detail popover
  • addEach popover shows the date, uptime %, total checks, and number of failed checks
  • addLists each incident with start time, duration, and the cause that triggered it
  • addDistinguishes resolved incidents from ongoing outages
Fixed

Latency Stats for Fast Pings

  • buildICMP and TCP ping monitors with sub-millisecond round-trip times no longer show "—ms"
  • buildLatencies are now clamped to a 1ms floor on success and rounded instead of truncated
  • buildDownsampled checks endpoint no longer coerces a real 0ms average to null
  • buildFrontend stat cards no longer drop 0ms readings as missing data
Fixed

Docs Sidebar Navigation

  • buildSticky sidebar no longer hides behind the fixed top nav on every docs page
  • buildRight-side "On this page" TOCs now have working anchor links instead of dead "#"
  • buildActive TOC entry tracks the section you're reading as you scroll
  • buildAnchor jumps now land below the header instead of being clipped by it

April 8, 2026

SSL certificate monitoring, four monitor types, and smarter hostname handling.

New

SSL Certificate Monitoring

  • addNew monitor type: track SSL certificate expiry on any host
  • addAutomatic alerts at 14, 7, and 1 day before expiry
  • addCertificate expiry card on monitor detail — days remaining with color-coded progress bar
  • addDetects expired and invalid certificates
  • addExpiry alerts also work for existing HTTP monitors with HTTPS URLs
Improved

Four Monitor Types

  • arrow_forwardHTTP — full request with status code and body checks
  • arrow_forwardTCP Ping — port reachability and handshake latency
  • arrow_forwardICMP Ping — network-level reachability and packet loss
  • arrow_forwardSSL — certificate expiry and validity monitoring
Improved

Smarter Input Handling

  • arrow_forwardPasting a full URL into TCP/Ping/SSL monitors now auto-strips the protocol
  • arrow_forwardCookie consent banner added

April 7, 2026

Maintenance mode, stronger session security, and smarter rate limiting.

New

Maintenance Mode for Status Pages

  • addToggle maintenance mode on any status page from the dashboard
  • addCustom maintenance message shown to visitors
  • addYellow "Scheduled Maintenance" banner replaces the status banner during planned downtime
  • addMonitors keep checking — uptime data isn't affected
Improved

Session Security

  • arrow_forwardRefresh tokens are now single-use — each refresh invalidates the old token
  • arrow_forwardToken reuse detection — if a stolen token is replayed, all sessions are revoked
  • arrow_forwardChanging your password now logs out all devices
  • arrow_forwardLogout revokes the entire token chain, not just the current session
Improved

Smarter Rate Limiting

  • arrow_forwardUpgraded to sliding window algorithm — no more burst-at-boundary exploits
  • arrow_forwardRate limit headers now include reset time

April 4, 2026

TCP Ping and ICMP Ping monitoring — check servers, databases, and infrastructure that don't speak HTTP.

New

TCP Ping Monitoring

  • addMonitor any TCP port — databases, caches, SSH, custom services
  • addMeasures TCP handshake latency (SYN/ACK round-trip)
  • addCommon port hints: MySQL, Postgres, Redis, MongoDB, SSH
New

ICMP Ping Monitoring

  • addReal ICMP ping — test if a host is reachable at the network level
  • addReports average latency and packet loss
  • addAvailable on all plans including Free
Improved

Smarter Monitor Creation

  • arrow_forwardThree monitor types: HTTP, TCP Ping, and ICMP Ping
  • arrow_forwardAdvanced settings now adapt to monitor type — no more irrelevant fields
  • arrow_forwardType badges (TCP, PING) shown on the dashboard for quick identification

April 2, 2026

Free plan now includes 10 monitors, styled 404 page, and reliability fixes.

New

More Generous Free Plan

  • addFree plan increased from 3 to 10 monitors
  • addEmail alerts on free plan (down notifications)
New

Styled 404 Page

  • addCustom 404 page with tech-themed design — no more blank pages on bad URLs
Fixed

Bug Fixes

  • checkAlert emails now deliver reliably (switched to Resend HTTP API)
  • checkDowntime duration now calculated correctly in recovery alerts
  • checkFixed timezone handling across all date comparisons

March 31, 2026

Custom domains, POST/PUT monitoring, content checking, redesigned alerts, and more.

New

Custom Domains for Status Pages

  • addPro users can point their own domain at a status page (e.g. status.acme.com)
  • addSSL provisioned automatically via Cloudflare — just add a CNAME
  • addManage domains from the Status Pages dashboard
New

POST/PUT Monitoring & Content Checking

  • addMonitor APIs that require POST or PUT requests with a JSON body
  • addKeyword checking — verify the response body contains a specific string
  • addCatch error pages that return 200 but wrong content
New

Redesigned Alert Emails

  • addNew dark-themed email templates matching the Upwatch dashboard
  • addAt-a-glance metrics: status code, failure count, downtime duration
  • addDirect link to incident details from every alert
Improved

Plans & Pricing

  • arrow_forwardFree plan now includes email alerts for downtime notifications
  • arrow_forwardPro plan includes recovery notifications and all alert channels
  • arrow_forwardPromo codes supported at checkout
  • arrow_forwardStripe subscription cancelled automatically on account deletion
Improved

Dashboard & Mobile

  • arrow_forwardFull mobile navigation — all pages accessible on phones
  • arrow_forwardLogout button on mobile
  • arrow_forwardResend verification email from the dashboard with 60-second cooldown
  • arrow_forwardPro-only features clearly labeled in monitor settings
  • arrow_forwardPassword strength requirements on registration and password changes
Fixed

Bug Fixes

  • checkStatus page uptime bars now show real daily data
  • check"Last updated" timer resets correctly on each data refresh
  • checkSSL checks work correctly for CDN-hosted sites
  • checkSettings modal saves notification preferences properly

March 28, 2026 (evening)

Security hardening, multi-status pages, and data integrity fixes.

New

Email Verification

  • addVerification email sent on signup
  • addDashboard access requires verified email
  • addResend verification from the dashboard banner
New

Multiple Status Pages

  • addCreate multiple public status pages with custom slugs
  • addAssign specific monitors to each page
  • addCopy URL, edit, and delete from the dashboard
Improved

Security & Reliability

  • arrow_forwardRefresh tokens moved to httpOnly cookies (XSS protection)
  • arrow_forwardJWT secret now required — no insecure default
  • arrow_forwardRate limiting race condition fixed (atomic INCR)
  • arrow_forwardDNS rebinding protection in HTTP checker
  • arrow_forwardExcess monitors paused automatically on plan downgrade
  • arrow_forwardPer-plan data retention (7 days free, 30 days pro)
  • arrow_forwardCheck history pagination now includes total count
  • arrow_forwardWorker graceful shutdown — no more interrupted checks
  • arrow_forwardScheduler state sync between inline and distributed modes

March 28, 2026

Paid plans, multi-channel alerts, password reset, and improved reliability.

New

Free & Pro Plans

  • addFree plan: 10 monitors, 5-minute checks, 7-day data retention
  • addPro plan ($5/mo): Unlimited monitors, 30-second checks, 30-day retention
  • addGenerous free plan with email alerts included
  • addStripe payment integration for upgrades and billing management
  • addPlan usage shown in Settings (monitors used vs. limit)
New

Multi-Channel Alerts

  • addEmail alerts — HTML-formatted down and recovery notifications
  • addSMS alerts — text message notifications for critical outages
  • addDiscord alerts — rich embed messages via webhook
  • addConfigure all alert channels from Settings
New

Account Security

  • add"Forgot password?" — reset link sent to your email
  • addPersonal API keys — generate and regenerate from Settings
  • addAccount deletion with confirmation
Improved

Reliability & Performance

  • arrow_forwardChecks now run on dedicated workers — more reliable, faster results
  • arrow_forwardAPI rate limiting to prevent abuse
  • arrow_forwardConsistent navigation across all pages
  • arrow_forwardIncident duration now calculated correctly for all cases

March 27, 2026

New dashboard, create monitors from the UI, incidents page, and documentation.

  • addRedesigned dashboard with sidebar navigation and quick stats
  • addCreate, edit, and delete monitors directly from the dashboard
  • addIncidents page — view all active and resolved outages
  • addIncident detail view with timeline, root cause, and duration
  • addExport incident reports as CSV
  • addSettings page — profile, change password, API key, notification channels
  • addQuick settings modal from the gear icon
  • addDocumentation — Getting Started, API Reference, Guides, Support
  • addPublic status page redesigned with 30-day uptime bars
  • addMobile-friendly bottom navigation

March 26, 2026

User accounts and public status pages.

  • addSign up and log in with email and password
  • addEach user sees only their own monitors
  • addPublic status page — share system health with your customers
  • addFaster uptime stats with caching

March 25, 2026

Upwatch launches.

  • addHTTP monitoring — check any URL with GET or HEAD requests
  • addConfigurable check intervals from 30 seconds to 5 minutes
  • addAutomatic incident detection after consecutive failures
  • addSlack and generic webhook alerts on downtime and recovery
  • addTLS certificate expiry monitoring
  • addResponse time charts and 30-day uptime history
  • addREST API for managing monitors programmatically