Incident timelines always record how a case was closed
- FixWhen a harmful content incident closes, the closing note in its timeline is now written together with the closure itself, so a case can no longer end up closed without an explanation of why.
New features, improvements, and fixes shipped to Visual Sentinel. Newest at the top.
Page speed checks now retry when the measurement service has a hiccup, and tell you when a result could not be collected.
A site flagged for a suspicious verification screen now clears itself once it is clean again, sub-pages tell you when they are back to normal, and large sites are no longer reported as down by mistake.
Visual baselines now remain stable after capture-setting changes, and every monitored page keeps its own alert state.
Monitor details and fleet cards now make health, protection, and report evidence faster to understand on desktop and mobile.
The homepage now makes the product easier to evaluate, while monitor details use clearer current-state language and controls.
Reviewed captures can once again be accepted cleanly after a website security warning.
Recovery validation now waits correctly while a new snapshot is still being finalized.
Production recovery now uses frequent verified snapshots and independent freshness monitoring.
Visual checks now protect baseline history when a monitored site is replaced by a suspicious verification screen.
Overlapping server reports now preserve the existing alert without generating duplicate operational noise.
API monitoring pages now show the current entry price and the right check frequency for each plan.
A stale DNS propagation article now routes readers to maintained product guidance.
Website checker results now offer the next useful action beside the diagnostic instead of far below it.
Social previews and company links now point to the official Visual Sentinel account.
The homepage developer section now matches the current Visual Sentinel MCP server, Claude Code plugin, and API reference.
Buyer guides and comparison pages now reflect the latest public pricing, Free-plan terms, and feature coverage.
Knowledge Hub guides now connect readers to the most relevant free diagnostic without requiring an account.
Starting from a public service-status check now carries that service directly into account setup.
A security guide with unsupported product and performance claims has been removed while a fully sourced replacement is prepared.
When sign-in is needed, Visual Sentinel now returns you to the protected page you intended to open.
A second outdated guide with retired plan and pricing details has been removed while a current replacement is prepared.
An outdated guide with incorrect plan and trial details has been removed while a fully refreshed replacement is prepared.
Visual checks now stop promptly at an additional stage where an unresponsive website could previously keep a capture busy for several minutes.
Visitors and search engines now receive clearer page signals, more current comparisons, and better paths to the most relevant VisualSentinel product pages.
Some websites keep our screenshot browser busy without ever finishing, usually because of aggressive bot protection or a speed plugin that delays scripts. You can now see when this happens and how to fix it.
Visual monitoring now notices when a website keeps a check busy without ever finishing, and moves on in seconds instead of minutes.
Search engines now receive a clearer distinction between public guides, documentation, preview environments, and service-status pages.
Developer documentation, legacy search results, mobile-app discovery, and public page summaries are now clearer and more reliable.
Key monitoring guides, plan details, app information, and comparison routes are now clearer to people and search assistants.
The mobile product preview and update prompt now remain crisp and readable in light and dark mode.
Client reports now put the live dossier closer to the controls and remain easier to read in dark mode.
Simultaneous first actions now join the same activity session cleanly instead of dropping one event.
A delayed visual check can no longer interrupt other screenshots running at the same time.
The homepage and shared link previews now show the current Visual Sentinel experience across web and mobile.
Background monitoring health checks now transition cleanly through product updates without false recovery actions.
Reports now handle a short service reconnect without exposing a technical parsing error.
Client reporting responds faster while visual monitoring keeps its screenshot storage clean automatically.
Background monitoring now has an independent health check that detects stalled work, alerts our operations team, and performs a guarded recovery when needed.
Agency and comparison pages now use shorter, clearer headlines at a calmer scale instead of repeating product names in oversized poster-style type.
The sidebar brand row and workspace header now meet on the same baseline, removing the small visual step between the two rails.
Operational totals now distinguish incidents from server and rule alerts, recovered servers stop carrying old critical work, and public pages share the product’s softer dark palette.
Trial activation is safer to retry, agency pages show the report outcome directly, and public product claims stay consistent with the product customers receive.
Search performance is easier to scan, and domain renewal health now appears beside certificate health.
See exactly which Search Console site and GA4 property feed each client report, without digging through an account-wide checkbox catalog.
Send clients the health, audience, engagement, acquisition, and search story without filling gaps with guesses.
Open one site, choose the exact period, review its complete story, and export what you see.
Build the complete client story from one page, for one site or the whole portfolio.
Fewer pages, clearer workspaces, and every existing capability still available where it belongs.
A batch of fixes and polish driven directly by customer feedback. Thank you to everyone who reported these.
If you manage websites for clients, there is now a dedicated overview of how Visual Sentinel fits that work: monitoring every client site, alerting your team first, and giving each client branded proof.
Your scheduled monitoring reports are now a document you can hand to a client or keep on file, with a new section that proves what happened on the site this period.
Editing many monitors at once now applies exactly what you chose, tells you exactly what happened, and looks right in dark mode.
A thorough pass over API monitoring: response checks now run consistently from every region, API Key authentication works, and the settings you configure actually take effect.
Outage detection is no longer tied to how often your monitor runs. Once a failure is confirmed, VisualSentinel rechecks on its own fast cadence until the alert decision is made.
A reliability-focused release: clearer, more dependable alerting across the board, alongside a redesigned homepage and a smoother getting-started experience.
An expired domain takes down your website, email, and APIs all at once. Visual Sentinel now watches your domain registration on every plan, including Free.
A monitor that is completely down now reports its real uptime everywhere, instead of a misleading healthy-looking percentage.
Every notification (email, Slack, Discord, Teams, Telegram, WhatsApp, PagerDuty, Opsgenie, webhooks, browser push, Prometheus) is now produced from a single canonical event, so the facts can never drift between channels.
A new index of live service status pages and improved internal navigation around the existing /tools area.
Behind-the-scenes cleanup so blog articles share authority correctly with search engines instead of competing with stale variants.
Improved the grouped server-incident experience so customers can see exactly which monitors were affected and what the server looked like at the time.
Improved how Visual Sentinel groups alerts when several monitors on the same server fail or recover in waves.
Refinements to how we attribute marketing conversions, so the team can measure which channels are bringing in real customers more accurately. No customer-facing UI changes.
Multi-region monitors now show each region's uptime separately on the monitor detail page, so you can immediately see when a single region is failing instead of a confusing aggregate that could read 50% with no obvious explanation. The headline uptime number is also recalculated as the mean across regions, which fixes cases where one healthy region was masking a 100% failure in another.
Server load alerts are smarter about when to fire. A common false-positive pattern (high load average with low CPU usage, typical inside Linux containers and I/O-heavy workloads) is now correctly recognised as non-actionable and suppressed. Critical-tier load spikes still fire regardless of CPU so real incidents are not missed. The notification channel hint and load average tooltip on the server configuration dialog were also clarified.
Internal-only fix for a regression in our continuous integration test suite. No customer-facing change.
When you accept an invitation to an existing organization, you now land directly on the dashboard. Previously, invited users were sent through the first-monitor setup wizard, even though the inviting organization already had monitors, channels, and a plan configured.
When a teammate accepted an invitation by signing up with Google or GitHub, the app was previously creating an extra empty workspace for them in addition to joining the inviting organization. They now land directly in the inviting organization with the correct role, no extra workspace.
Internal-only: we can now see why a signup or social login attempt did or did not complete, instead of only seeing the successes. No customer-facing change.
Public pages were loading two session-replay vendors. We removed Microsoft Clarity and kept the higher-quality one. Side effect: a known JavaScript error class disappears, public pages load slightly faster, and the cookie consent surface is simpler.
Internal error monitoring no longer logs or forwards outgoing webhook URLs when paging engineering. No customer-facing change.
Internal log-level tuning so the engineering channel only pages on platform issues, not on customer-side connection failures that are already handled by the existing alert pipeline. No change to customer-facing alerts or check behavior.
When you click a notification from one organization while currently working in another, the dashboard now switches you to the correct organization automatically and lands you directly on the monitor, server, or incident the notification was about. No more 404, switch organization manually, then re-navigate.
The AI-agent markdown rendering now leads with our actual differentiators (smart-alert clustering, Cloudflare integration, 15-minute visual regression, privacy-first status pages) instead of a generic feature list. Also fixed a delivery quirk where the homepage markdown was returning HTML when the prerender cache won the race against content negotiation.
Hotfix to the AI-agent markdown rendering shipped in the previous release: the homepage path now correctly returns markdown when requested with Accept: text/markdown.
Public marketing pages now also serve a clean markdown rendering when an AI agent or LLM tool requests it via the standard Accept: text/markdown header. Browsers continue to get the regular HTML view. Helps AI search engines and assistants ingest and cite Visual Sentinel content with higher fidelity.
Fixed an intermittent rendering glitch on the homepage that some visitors were seeing on first load. Locked the live status pages against in-browser auto-translation that was causing the same glitch. Added our LinkedIn, Facebook, and Instagram presence to the footer and to our brand metadata so AI search engines can find them. Internal telemetry improvements for our signup funnel.
The 29-day SSL expiry tier was retired across the dashboard because it fired during the typical certificate auto-renewal window (most customers got paged about a renewal that completed uneventfully). Existing monitors using the 29-day tier are migrated to the 20-day tier instead, which fires after auto-renewal would have completed and a real problem is more likely.
Visual Monitoring now defaults to one capture per hour for new monitors, with a 15-minute minimum if you want it more frequent. Same alert quality, less noise, and lower load on the sites being monitored. Internal alerting noise from already-handled customer-side timeouts has also been reduced (your DOWN alerts are unchanged).
Tightened the check infrastructure trust model so a brief network blip on a check node no longer wakes you with a "site down" alert when your site is actually fine.
Bulk actions on the alert settings page and the monitor list (linking monitors to a server) now apply to every selected monitor instead of silently failing on accounts with many monitors. The action cap now matches what the page can display.
Filtered out noise from a third-party library that cannot generate IDs on certain privacy-hardened browsers. No customer-facing behavior change.
Sign-in via Google or GitHub now recovers automatically from a slow upstream call and gives up quickly with a clear retry path instead of leaving you waiting.
When you invite a teammate and they sign up directly (rather than clicking the invite link), they now land straight inside your organization with their assigned role. No detour, no orphan personal workspace, no extra step.
Daily, weekly, and monthly digest reports now load several times faster, especially for accounts with many monitors. On quiet periods with no incidents, the report is generated instantly without waiting on analyst commentary.
Loading Cloudflare zones for the first time after the cache refreshes is now several times faster, especially for large accounts.
Fixed an internal build configuration so new releases can deploy. No customer-facing behavior change.
Aligned a few internal compliance tests with the new in-app trial offer plumbing. No customer-facing behavior change.
Tightened internal copy to match our style guide. No customer-facing behavior change.
If your trial paused some of your monitors, the Monitors page now shows a quick way to bring them all back. Card required, no charge until day 10. Cancel anytime.
Customers with several hundred monitors will now see all of them on the alert settings page. Previously the list quietly stopped at the first 500.
A locked feature now offers a 10-day trial right where you are, with one click instead of a trip to the pricing page. Card required. No charge until day 10. Cancel anytime.
Cleaner error tracking and clearer billing alerts on our end. No customer-facing behavior changes.
Tightened how AI-generated incident summaries handle data from monitored services. No customer-facing changes for normal monitors and incidents.
Tightened how links are rendered inside chat replies and blog content. No customer-facing behavior changes for normal links.
Profile picture uploads now go through additional safety checks and are converted to a single canonical format. Existing profile pictures are unchanged.
Improved how the site refreshes its global content cache after each release. Fixes occasional rendering glitches that some visitors hit immediately after a new version goes live.
Strengthened password requirements on the password reset and change forms (the same complexity rule that applies at signup now applies everywhere). Internal error reporting no longer includes raw email addresses or URL query strings.
Tightened authentication on internal agent endpoints. No customer-facing behavior changes.
Tightened how outgoing webhook requests are validated. No customer-facing behavior changes for legitimate webhooks.
Tightened verification on links inside our outbound emails. No customer-facing behavior changes.
Updated several internal libraries to their latest patched versions. No customer-facing behavior changes.
Tightened the boundary between customer status-page custom domains and the rest of the application. No customer-facing behavior changes.
Replaced a flaky external lookup with a faster built-in equivalent. No user-visible changes.
If you have many monitors on the same hosting (even without explicitly grouping them), a shared infrastructure event would previously page you for every site at once. We now spot the pattern automatically and consolidate to one informative alert.
When many of your monitors share infrastructure that goes wobbly, we already fold the failure alerts into one summary. We now do the same for slow-response alerts so you stop getting a flood of "responding slowly" notifications during a shared-host event.
Hotfix for an internal background process. No user-visible changes.
Performance and observability follow-ups based on real user data from the previous release.
Foundational changes to how we decide when to wake you up. When our checking infrastructure is itself unstable, we now hold customer alerts until we can confirm the issue is on the monitored site, not on our side. Phase 1 of a multi-step rollout.
Small follow-up to the previous release. No user-visible changes.
Small follow-up to the previous release. No user-visible changes.
Internal improvements to product analytics and a small piece of preparation work for an upcoming payment-method addition. No user-visible changes in this release.
When dozens of your monitors fail at once because a shared origin server has a brief outage, you now get exactly one server-level alert naming the affected server, the count of impacted sites, and a sample of which ones. The individual monitor incidents are nested under that one parent incident on your dashboard, so the audit trail stays complete. A 30-second deferral on linked-monitor notifications gives the system time to recognize a cluster pattern before any noise reaches your channels. The full-feature trial offer also no longer auto-starts the moment you pick the Free plan.
Detection of registrar parking pages and hosting-suspended landings, introduced one release earlier, now applies to checks from every region rather than only some. Multi-region checks classify the same situation the same way regardless of which region observes it.
When your domain stops pointing at your hosting (lapsed domain billing, transferred away, parked at the registrar), Visual Sentinel now classifies the situation correctly at the uptime layer instead of firing a confusing visual-difference alert with a misleading "all metrics normal" diagnosis.
Two mobile fixes from real reports. The top navigation now stays accessible while scrolling on iPhone Safari, and the support chat icon is calmer and smaller on small phones.
Audit log entries for password and admin actions now record reliably. Refreshed brand mark and favicon for sharper rendering on light and dark themes.
SSL certificate expiry alerts are now tuned for less noise on healthy auto-renewing certificates while preserving early warning for actual renewal failures. Plan, channel, and feature descriptions across the marketing site, blog posts, and AI-agent documentation now exactly match what each tier offers.
Added two new comparison pages, two new long-form blog posts, and deeper coverage on the visual monitoring and server monitoring pages. Homepage and pricing copy now describe each plan in plainer language so you can pick the right tier faster.
Refreshed the public documentation file at /llms.txt with the latest pages and product surface so it stays a faithful summary of what is on the site.
Updated the top navigation and footer to expose recently added pages so they are one click from anywhere on the site.
Added a new side-by-side comparison page and a new /website-monitoring overview that walks through all six monitoring layers and how a check runs end to end.
Visual Sentinel is now installable in Claude Desktop, Claude Code, Cline, Cursor, and Continue via the public @visualsentinel/mcp-server package on npm. Ask your AI assistant what monitors are down, triage an incident, run a free SSL or DNS check, or onboard a new monitor by description, all from inside the conversation.
Tightened the rules that decide when a slow-response alert fires, so a brief blip during a check no longer trips the alert. Your configured slow-response threshold is now respected exactly as set, and slow checks are counted per region instead of pooled across regions, which removes a noise pattern where a single transient hiccup could fire alerts for several monitors at once.
Added a new side-by-side comparison page under /compare. Also published the public OpenAPI specification on GitHub so developers and AI agents can integrate with the Visual Sentinel API directly from a canonical source.
New blog posts and changelog entries now notify search engines the moment they go live, so they show up in search results in hours instead of days. Previously, a freshly published post had to wait for the next natural crawl cycle.
The Add Monitors and Add Servers dialogs on a status page now have a search box and a Select All checkbox. Search by name or URL, then click Select All to pick the entire matching set in one go. The previous one-click-per-row workflow still works for picking individual entries.
If you manage many monitors, the Monitors page used to slow down once the list grew large because every card was rendered up front. The list and grid views now render only what is on screen, so scrolling, searching, and filtering stay snappy regardless of how many monitors you have. Smaller accounts continue to render exactly as before.
Bespoke Enterprise customers were being capped at the standard Agency monitor limit even when their account carried a higher per-customer ceiling. The plan-limits resolver now correctly honors per-customer overrides for Enterprise accounts.
Status pages now support two access controls. Add a password to protect any status page, set an IP allowlist to restrict access to specific IP addresses or ranges, or combine both. The IP allowlist requires a verified custom domain. Existing public status pages render exactly as before unless you turn on a control in Settings.
Several feature gates were checking your subscription tier without taking your active trial into account, so trial customers were silently denied features they were entitled to during the trial. The DNS history snapshots, keyword content monitoring, status-page theme and SEO controls, and the AI usage allowance on the billing page all now honor the trial state correctly. Once your trial ends, normal plan limits apply as before.
When a monitor wasn't actively checking during a report period (because it was disabled, paused, or newly created with no checks yet), reports used to show '100% uptime' on the headline stats. They now correctly show 'N/A' and the AI summary explains that monitoring was inactive instead of leading with a misleading score. Reports for active monitors are unchanged.
Tightened internal error reporting so common bot-probe traffic against the platform's homepage no longer surfaces as on-call alerts. No customer-facing change.
If you started your trial with a card on file, the billing page now correctly shows your billing-start date and tells you can cancel anytime before then, instead of the generic 'subscribe below to keep your features' message. Customers without a card on file continue to see the 'subscribe to keep features' message as before.
Recovery (back online) alerts now fire when an incident actually closes, rather than relying on a fixed time window. This guarantees recovery alerts for genuine multi-day outages while still suppressing alerts from background state cleanup or brief check-time flaps that never crossed the alerting threshold.
Monitor recovery alerts now require a corresponding down alert within the last 24 hours. This prevents 'recovered' notifications from firing when no outage was ever surfaced to you, which could otherwise happen during background state cleanup after platform upgrades.
Down detection for monitors that check from multiple regions has been hardened. A subtle interaction between the database server's clock-zone setting and certain time-window queries could prevent the platform from recognising that recent checks had failed across regions. The fix is layered across the application code, the database connection, and the runtime environment so the issue cannot recur as we add more check regions and nodes.
If your monitor went down and you got a 'monitor is down' alert, you should always get the matching 'monitor recovered' alert when it comes back. A subtle gap in the previous logic could occasionally drop the recovery alert when an outage resolved very quickly or affected only one region. Recovery alerts are now tied directly to the incident lifecycle, so every closed incident that originally alerted you also tells you when it's resolved.
When a monitor had no explicit visual check cadence configured, the settings UI was showing 'Every 24 hours' regardless of the actual cadence. The display now reflects the cadence the system is really using for that monitor, taking your plan into account. Saving the form without changing the dropdown no longer writes a value, so your intent to 'use the plan default' is preserved across plan changes. No customer action required.
We rewrote earlier changelog entries to be cleaner and more user-focused. Same shipped behavior, tidier copy.
Background cleanup of stale visual-monitoring records now runs reliably. A pre-existing bug was causing the cleanup pass to abort early on high-traffic accounts, which over time could allow stale records to accumulate. No customer action required.
Visual change detection now requires the same content drift to repeat across multiple checks before triggering a screenshot capture. Previously, any mismatch between checks counted toward the threshold, which could falsely trigger captures on pages with dynamic noise (timestamps, ad slots, dynamic markup) even when no real visual change had occurred. With this release, random per-request noise resets the counter; only stable, repeated changes lead to a screenshot. Once a screenshot is taken for a particular changed state, that exact state is suppressed from re-capture until either the page recovers to baseline or the periodic safety window elapses (default 12 hours, configurable). The result is dramatically fewer wasted captures on dynamic pages and a much higher signal ratio in alerts. No customer action required.
Foundation work for running visual monitoring at much higher monitor counts. Adds centralized rate limiting (per-minute global and per-host), smart prioritization (manual checks beat scheduled ones), backpressure-aware delay when the queue is hot, and deduplication so the same capture can't queue twice. Also adds an opt-in scanning mode that replaces per-monitor scheduled jobs with a single periodic scan, drastically lowering background overhead. The new mode is opt-in; existing accounts continue to use the previous behavior. No customer action required.
Visual monitoring now ignores transient HTML noise (timestamps, ad slots, dynamic class hashes, etc.) instead of triggering a screenshot capture on every minor content drift. Fast-cadence monitors now wait for several consecutive content mismatches before enqueueing a screenshot, and once a screenshot is enqueued there is a cooldown window before the next one can fire. Customers running noisy sites (e-commerce, news, dashboards) will see far fewer false-positive captures and far less alert noise. Slow-cadence monitors (one-hour-plus intervals) still react to the first mismatch since each check is more significant. The threshold is configurable per monitor.
When an active or recently-resolved visual change incident is opened, the before/after/difference screenshots now stay viewable for at least 30 days. Previously, on monitors with frequent UI changes, the comparison images could be cleaned up the same day an incident closed (sometimes while the incident was still open) leaving the dashboard with placeholder boxes instead of the actual evidence. No customer action required. The deeper architectural fix that stores incident evidence completely separately from the rolling screenshot pool is planned for a future release.
Two small fixes. First, the per-service status pages (e.g. visualsentinel.com/tools/status/playstation) no longer crash for mobile users whose browser auto-translates the page into another language. Now they render cleanly across translation modes. Second, when the visual monitor detects a UI change, it now only reopens a previously-resolved incident if the prior incident closed within the last hour (was 24 hours). Practical effect: a fresh UI change the next day opens a fresh incident with a fresh detection timestamp instead of re-attaching to yesterday's incident and showing yesterday's date on the alert.
Restored visual capture reliability after a regression in the previous release. No customer action required.
Tiny visual fix. The β beta badge next to the Content tab was rendering as a plain capital B because of an inherited CSS uppercase rule. Now it correctly shows the lowercase Greek beta character.
Internal build reliability fix. Builds now complete in their normal time again. No customer-visible behavior change.
Internal startup cleanup hardened against an edge case that could halt it early. No customer-visible behavior change for monitoring.
Added a small β badge next to the Content tab inside the single-monitor view. Content monitoring is the most volatile of the six layers (the underlying detection is hash-based and there is no restored-state notification yet), and we want customers to know it is still under active iteration before they wire alert rules around it. No change to any monitoring behavior.
When a monitor recovers from a DOWN state, Discord and Slack alerts now include how long the monitor was offline (matching what email and WhatsApp already showed). Same shape of fix as the previous release's UI Restored duration improvement, applied to the DOWN to UP recovery path.
When a UI Restored alert fires after a visual change has cleared, Discord and Slack now show how long the page was off baseline (matching what WhatsApp and email already showed). Server Recovery alerts in Slack also now include the offline duration and the previous issue label, matching the Discord embed.
Additional network-layer protections for visual monitoring captures. Monitors of CDN-fronted, multi-host, and certificate-pinned sites continue to work unchanged. No customer action required.
Cleaner error reporting in visual monitoring when a target site is extremely slow to render. Same screenshot budget, same outcome for slow sites, just a tidier alert trail. No customer-visible behavior change for monitors that complete normally.
Fixed an internal bug where the daily NPS Day-14 lifecycle email could not run. Other lifecycle emails (welcome, day-3, day-7, weekly digests, monthly product updates, milestone emails) were unaffected. NPS Day-14 emails resume on the next daily cycle. No customer action required.
Additional network-layer protections for HTTP and HTTPS monitor checks. Monitors of CDN-fronted, multi-host, and certificate-pinned sites continue to work unchanged. No customer action required.
Additional protections for the server monitoring agent install and report paths. No customer-visible behavior change. Existing agents continue to work unchanged.
Two threads in one release. First, a new server alert type for the server monitoring agent: high load average. CPU% on its own can stay under your threshold even when a server is being hammered (a common pattern under fork-bombs, runaway processes, and heavy I/O wait, where cores look idle while work piles up). The new Load alert watches the 5-minute load average normalized against the server's CPU count and pages you when work is queueing faster than the box can process it. Defaults are calibrated against industry references (warn at 2x cores, critical at 4x cores) and every server's thresholds are tunable from the alert configuration drawer. The alert message includes the 1m, 5m, and 15m load averages plus the per-core saturation percentage so you know at a glance whether load is climbing or settling. Second, a stability pack for the visual-monitoring pipeline: warm browser pool re-enabled, post-deploy ramp-up made instant instead of half an hour, scheduler clock no longer reset on every worker boot, and full-size visual evidence preserved on the dashboard for the most recent four resolved incidents per monitor in addition to the open ones.
A focused performance release for visual monitoring. Three changes compound: a warm browser pool that keeps browsers alive across checks instead of relaunching each time, an adaptive page-load wait that skips the slow wait after a monitor has had 5 clean checks in a row, and an expanded content-change filter that ignores common dynamic page noise so more checks exit on the fast path without launching a browser at all. The result is roughly 10x more monitors serviceable at the same compute cost.
A focused reliability release for visual monitoring. We found that some visual-enabled monitors were silently missing their scheduled comparison captures, meaning a real UI change could go undetected and (more importantly) a fix never got picked up as a restoration. This release rebuilds the scheduling layer to never reset a live monitor's clock, prunes accumulated stale state, and lifts the visual monitoring throughput ceiling by 2x to match the available headroom. On the incident side, restoration now fires correctly when a visual-only incident is still open but the monitor's uptime status has already flipped back to Operational, and posting a Postmortem update on an un-resolved incident now atomically marks it resolved (the Postmortem is conceptually one step beyond Resolved, so it shouldn't need a separate click).
A small but visible fix to internal error noise. When a monitor is deleted while a check for it is mid-flight (the external HTTP + render can run for 30+ seconds), the final step that saves the check row would fail and raise an alert. The delete is the normal expected behaviour, so we now skip the write silently instead of treating it as an error.
Two user-visible fixes and one visual overhaul. The auto-resolve toggle now actually holds the incident open when you switch it off (it was leaking through four other recovery paths we missed). The incident drawer now shows the full update timeline, matching the detail page. And the Past Incidents section on your public status page has been rebuilt to match the layout industry-standard status pages use, date headers grouping the incidents of each day, each incident's full update timeline flat-rendered inline, and the day's wall-clock time shown in your organization's timezone.
Two changes to how Visual Sentinel closes incidents when a monitor recovers. First, auto-resolutions now leave an explicit 'System' entry in the incident's Updates Timeline so the dashboard and public status page show what happened instead of silently flipping the status. Second, every incident now has an Auto-resolve toggle in the drawer and detail page. Leave it ON (default) for the pipeline to close the incident automatically when the monitor is healthy again. Flip it OFF for incidents where you want to keep the incident open until a team member posts a Resolved update themselves, e.g. while you finish writing the postmortem.
Three fixes to how your public status page renders incident updates. Your full update timeline now shows on every active and past incident (previously newer updates would push older ones off-screen once you had more than three). Each update now renders with a bold status tag (Investigating, Identified, Monitoring, Resolved, Postmortem) before the message, matching the layout used by the incident-status pages your viewers are used to. Timestamps now display in your organization's timezone instead of the viewer's browser timezone, with the zone abbreviation shown so international viewers can orient themselves.
The new Post Update form now also appears inside the incident drawer that opens from the Incidents list, so you can post a status update without clicking through to the full details page. We also restyled the form with color-coded status pills (Investigating, Identified, Monitoring, Resolved, Postmortem) matching the badges used elsewhere, an integrated character counter in the message field, and tighter padding that fits the drawer properly.
Lifecycle emails (Day 1 onboarding, Day 3 visual-monitoring nudge, Day 14 NPS, re-engagement, weekly summary, milestones, monthly product update) are sending again after a delivery regression in a recent release. Transactional mail (alerts, incidents, billing, password reset) was not affected. Lifecycle sends resume on the next scheduled run.
You can now post status updates directly on any incident and they appear on your public status page in real time. Choose from Investigating, Identified, Monitoring, Resolved, or Postmortem, write a short note for your users, and hit Post. The incident's top-line status moves with it, so your status page tells a clear story from 'we noticed something' through to 'all resolved'. Anyone with Admin or Owner role in the organization can post updates.
Previously only the Owner could save changes to the Organization Settings form, even though Admins could already swap the logo through a separate flow. That was an inconsistency. Admins on the Organization Settings page can now save the form (name, slug, description, website, timezone, billing email, logos) and update whitelabel branding (colors, fonts, email footer, 'Powered by' toggle). Deleting the entire organization and changing outbound SMTP credentials still require the Owner role, because both are either destructive or security-sensitive and not something an Admin should be able to change unilaterally.
Monitor Settings → Content Checking lets you flag a monitor as DOWN when required keywords (mustContain) are missing or forbidden keywords (mustNotContain) appear in the response body. The UI accepted your rules and saved them correctly, but the HTTP check pipeline was reading them from the wrong place, so the rules were silently never evaluated. The toggle now works as described. If your saved rules would have been violated by your site's current response, your monitor will correctly flip to a failure state on its next check.
Saving a monitor's Reports settings (include charts, include incidents) was silently failing for some accounts. The save now persists correctly with existing defaults preserved.
A complete rework of which emails you get from us and when. Six distinct drip and engagement flows, all gated by a single one-click unsubscribe link in every footer. Transactional mail (trial reminders, alerts, billing, password reset) stays on separate settings and is never affected. If a flow isn't useful for you, the unsubscribe link flips a flag and every lifecycle email stops.
Sign up with Google, start your 7-day trial, get every feature unlocked. That was already the promise, but a cluster of gating bugs was making the product look like a Free plan with some upsells sprinkled in. This release cleans that up end to end (monitor tabs, schedule step, sidebar badge, billing copy, integrations page).
Narrowing the unified-auth rollout: API keys can no longer reach AI-powered endpoints. Your AI chat assistant, AI insights, incident summarizer, and monitoring digest stay behind your browser session only. This is about preventing token-cost abuse from a leaked key, not a feature regression. Your existing integration work with API keys is unchanged for everything else (monitors, incidents, status pages, teams, etc.).
The unified-auth rollout that started in 2.24.0 is now complete. Every tenant-facing API endpoint accepts both session cookies and Bearer API keys. Six endpoints stay session-only by design (auth flows, billing checkout, OAuth init, invitation-accept, account-delete, org-switch). The API docs at /docs now reflect the final state with a dedicated mobile-app section.
Fourth batch of the unified-auth rollout. API keys can now drive onboarding flows (auto-setup, save-step, select-plan, start-no-card-trial, complete, status) and track analytics events (journeys, subscription lifecycle). The API key scope picker now exposes three new resources in the UI: Analytics, Maintenance Windows, and a clearer description for User Profile.
Third batch of the unified-auth rollout. API keys can now list and read your status pages, read their details, list and read maintenance windows, fetch AI-generated monitoring digests, and check whether all alerts are paused. Your existing keys gain access immediately based on the scopes they already have.
Second batch of the unified-auth rollout. Your API keys can now read your bell-icon notifications, your notification preferences (quiet hours, digest cadence), your digest settings, upload or remove your avatar, and read your current plan + limits + usage. Mobile apps and integrations no longer have to fall back to cookie-based auth for these.
The first batch of routes that were previously session-only now accept Bearer API keys too. That means integrations can now read your organization, teams, user profile, SMTP settings, and more using the same API key they use for monitor data. Admin endpoints (platform-level) stay session-only. Two new scopes are available: "user" and expanded "organization".
Fixed a subtle bug that affected anyone belonging to multiple organizations. API keys are now locked to the organization you were switched to when you created them, instead of silently resolving to an older org in your account. If you create a key while in Org A, it will always act on Org A data.
Small SEO polish. The homepage meta description was a few characters over the ideal length used by search engines, so it was getting flagged by Bing. Shortened from 176 to 157 characters.
Three real visual bugs squashed, plus a silent email bug fix. Your monitor charts no longer dive to 50% uptime on the rightmost data point (that was a partially-sampled current bucket, not a real outage). Y-axis labels no longer get their leading digit clipped on the left. And the weekly / monthly report emails now show a real average response time computed from your checks, not 0ms.
Small polish on the API key creation flow. The modal that shows you your new key once it is generated is no longer cramped, the copy button now actually sits next to the key (with a clear "Copied" confirmation), the key auto-selects on click, and a small usage snippet with a curl example is now shown so the next step is obvious.
Two small but annoying things fixed. Blog posts no longer show a brief hydration flicker on the published date for readers outside UTC, and the US check region now always returns a proper, actionable error code instead of ever appearing to hang.
Extending yesterday’s response-time correctness fix. The /monitors list page and its uptime / performance sub-views were still showing each monitor’s last single check in the response-time column. They now show the same rolling 24-hour average as the detail page, so the numbers are consistent wherever you look.
Follow-up to yesterday’s response-time fix. The Response pill in the header row next to Uptime and SSL now reads the same rolling 24-hour average as the "Avg Response (24h)" stat card below it, so the two numbers agree and the whole header row is consistently showing aggregates rather than the pill breaking from the pattern.
The "Avg Response" number on each monitor detail page was silently showing the response time of the most recent check, not an average, so it would swing between refreshes. It is now a real rolling 24-hour average computed from every check in the window, and the header pill next to your uptime shows the current-health "last response" separately.
Maintenance times entered in the form are now interpreted in your organization timezone, not your browser timezone, so 7:49 AM means 7:49 AM to you regardless of where you are sitting. The create dialog shows the active timezone plainly, and cards render every timestamp with an explicit offset suffix.
Broader follow-up to 2.23.1. Maintenance windows now suppress every notification type during the active window, not just UI Changed. SSL expiry, DNS change, content change, performance degraded, and slow response alerts all respect the window. History (DNS snapshots, screenshots, content hashes) is still captured so you can review exactly what happened during maintenance once it ends.
A fix and a polish. Scheduled maintenance windows now correctly suppress visual-change (UI Changed) alerts, not just uptime alerts, so a planned site update does not flood your channels. The Maintenance page card is also redesigned with clear Starts / Ends / Duration cells, timezone, live countdown, and clickable affected-monitor links.
The fourth guide in the error-diagnosis cluster lands in the Knowledge Hub. A plain-language explanation of what DNS errors actually are, what the Chrome error messages really mean under the hood, how a DNS problem can surface as "your connection is not private," and step-by-step fixes for visitors, site owners, and gaming consoles (PS5, Xbox).
A focused pass on visual change detection after a customer report showed the same underlying change being split into two separate incidents with fragmented timing. The lifecycle is now end-to-end accurate: an incident stays open until the page really returns to baseline or you accept a new one, duration reflects the real change window, and the incident record itself carries the server correlation that the alerts already showed.
Shipped two more Knowledge Hub guides (504 Gateway Timeout, SSL Errors) to round out the core error-diagnosis cluster, and refreshed the three highest-traffic comparison and explainer posts with first-party data sourced from our live monitoring.
A deep 502 Bad Gateway troubleshooting guide written from a DevOps engineer’s perspective lands in the Knowledge Hub, plus mobile polish on the blog and better tap targets on tools and compare pages. Homepage caching also got a cleanup behind the scenes so return visits feel snappier.
An internal deploy fix. The previous release (2.19.2) had all the features (five new live-status pages, better content, performance and design) built and staged, but did not reach production due to an internal release-pipeline issue. This release ensures everything that was waiting now ships. No functional difference from 2.19.2; this is the version that actually reaches you.
Added Venmo, Apple Pay, Apple Music, Apple TV+, and Rockstar Games (GTA Online servers) to the live-status page set after keyword research confirmed high demand and low competition in their SERPs. Total live-status pages now at 79.
A focused pass following a full SEO audit. Every live-status page now carries genuinely unique per-service content (not just a template). Mobile pages load and render better. Marketing copy is honest about what Visual Sentinel actually is (built by a DevOps engineer, not a generic full-stack developer). Compare pages no longer confusingly imply that we sell our competitors.
We scaled the free live status checkers from 27 services to 74 with AI platforms (ChatGPT, Claude, Gemini, Perplexity, Midjourney), consumer tier 1 (YouTube, Netflix, Instagram, Facebook, Twitter, Gmail, TikTok, Roblox), and cloud / dev infrastructure (Cloudflare, AWS, Azure, Google Cloud, Zoom, Slack, Dropbox, Heroku, Netlify, DigitalOcean, Jira, GitLab, Firebase, and more). Every status page ships with real-time checks from our EU and US nodes, a proper FAQ block, and a one-click "Monitor this yourself" CTA. Blog URLs are now year-free so the same post can be refreshed across years without breaking any inbound links.
A focused release on making the product tell the truth. Monitors with DNS problems now correctly show as down (they were being silently marked operational). Cloudflare imports skip zones with no origin. Competitor comparison tables were rebalanced to credit the competition fairly. New /cookies, /accessibility, and /bot pages published. Em-dashes removed from user-facing copy per house style.
A sweep of marketing copy, trial-state emails, and conversion UX. Stats and reviews now show only what is real. New monitors are live immediately (instead of waiting for a worker restart). Free plan users no longer see a paywall.
The onboarding plan-selection page now shows the Free plan alongside paid tiers and uses the new single-story trial messaging.
Cleaner SSL expiry alerts: no spurious "first threshold" alert when a monitor is added for a cert that was already past that threshold, and the expiry date now renders in your organization's locale instead of a raw GMT dump.
Every account now has a permanent home on the Free plan (3 monitors, HTTP + SSL, EU + US, 10-minute checks) plus a clearer trial story: start free for 7 days with every paid feature unlocked (no card), or pick a paid plan for a 10-day trial with a card on file.
Fixed the "Avg. Uptime" card on the Overview dashboard so paused monitors no longer drag down your fleet average. Paused monitors also no longer clutter the Monitor Health table.
Alerts on Discord, Slack, Telegram, and webhooks now carry the full picture (response time, threshold, URL, region, linked server health, and a root-cause hint) in a consistent format. Timestamps now respect your organization's timezone and date/time format preferences on every channel.
Fixed a class of WhatsApp alerts that were rendering as "DOWN" for events that were not actual outages (anomalies, content changes, DNS changes, performance degradation). Now every alert type, including visual restored, SSL renewed, and anomaly resolved, uses its own properly-framed template with server context when available.
Every alert across every channel now tells you WHY something is wrong, not just that it broke. Unified notifications with linked-server health, root-cause diagnosis, and consistent formatting across WhatsApp, Slack, Discord, Teams, Telegram, and email.
Connect Google Search Console and Analytics, import domains from Cloudflare, and a round of critical reliability fixes for multi-region monitoring and server offline incidents.
When your website goes down, Visual Sentinel now tells you WHY. Notifications include server health context, incidents auto-link to servers, and a root cause timeline shows exactly what happened.
Link your monitors to servers for instant root cause diagnosis. See server CPU, RAM, and disk metrics right alongside your website performance data.
Three new monitoring landing pages, 35 new comparison FAQs, corrected pricing data across the entire site, and instant indexing via IndexNow.
Self-hosted US monitoring from Ashburn, VA with full performance data. Multi-region response time charts. Redesigned API key permissions.
Critical fix for visual monitoring baselines reverting, plus incident dashboard improvements.
SSL alerts that actually escalate, automatic incidents for slow performance and expired certificates, and configurable SLA targets.
Cleaner organization switcher, improved onboarding flow, and pricing page updates.
Faster status pages, lighter database, smarter data retention.
Choose your trial path, get notified about incidents on status pages, and improved onboarding experience.
Upload your profile photo, control your branding on status pages, and accurate incident scoping.
Accurate uptime display, custom domain reliability, and plan-specific branding.
Browser push alerts on all plans, smarter alert delivery, and 50+ reliability improvements.
Instant data updates after changes, reliable alert delivery with automatic fallbacks, and clear timezone controls.
New visual monitoring capabilities, improved plan enforcement, and critical bug fixes.
Major release focused on security hardening, bug fixes from a comprehensive codebase audit, and SEO infrastructure.
Visual Sentinel is officially out of beta. Scaled-up production infrastructure, automated deploys, and proactive incident detection on the platform itself.