Changelog
A record of everything we've shipped. Latest releases first.
May 27, 2026
LatestDomain-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.
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
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
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.
Blog launched at blog.upwatch.dev
- arrow_forwardStatic markdown blog prerendered with Vite SSG — no CMS to maintain, posts live in
blog/posts/*.mdin 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
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.
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
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
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.
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.
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.
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
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%)
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.
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.
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}/failendpoint 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
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.
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.
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
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
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
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.
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
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
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.
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
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
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.
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
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
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.
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
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
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.
More Generous Free Plan
- addFree plan increased from 3 to 10 monitors
- addEmail alerts on free plan (down notifications)
Styled 404 Page
- addCustom 404 page with tech-themed design — no more blank pages on bad URLs
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.
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
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
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
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
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
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.
Email Verification
- addVerification email sent on signup
- addDashboard access requires verified email
- addResend verification from the dashboard banner
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
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.
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)
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
Account Security
- add"Forgot password?" — reset link sent to your email
- addPersonal API keys — generate and regenerate from Settings
- addAccount deletion with confirmation
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