<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/vendor/feed/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
                        <id>https://ohdear.app/changelog/feed</id>
                                <link href="https://ohdear.app/changelog/feed" rel="self"></link>
                                <title><![CDATA[ohdear.app - changelog]]></title>
                    
                                <subtitle>The ohdear.app changelog.</subtitle>
                                                    <updated>2026-04-17T22:43:02+00:00</updated>
                        <entry>
            <title><![CDATA[Changelog: 2026-04-17]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-04-17" />
            <id>https://ohdear.app/58</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added <strong>Danish and Swedish translations</strong> for status pages.</li>
<li>Added a <strong>status filter</strong> to the cron check definitions list.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Added <strong>retry and timeout handling</strong> to the Application Health HTTP client for more reliable checks.</li>
<li>Improved handling of <strong>Yuki API</strong> requests with better resilience.</li>
<li>Increased backoff timing for <strong>Application Health failure recoveries</strong> to reduce unnecessary retries.</li>
<li>Improved the <strong>Profile dropdown</strong> to support scrolling for users with many teams.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed an issue where the crawler and Broken Links placeholders did not correctly handle <strong>trailing slashes</strong>.</li>
<li>Prevented deletion of users and teams that are tied to <strong>active reseller accounts</strong>.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-04-17T22:43:02+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-04-03]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-04-03" />
            <id>https://ohdear.app/57</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>
<p>Updated the <strong>uptime checker</strong> to ensure responses are always fetched fresh and not served from cache.</p>
</li>
<li>
<p>Updated the <strong>PHP SDK</strong>:</p>
<ul>
<li>Added a <code>CheckResult</code> enum with support for the new <strong>warning state</strong></li>
<li>Included helper methods and updated documentation</li>
</ul>
</li>
<li>
<p>Improved visibility in DNS Blocklist checks by always showing the <strong>IP address</strong> for IP-based blocklists.</p>
</li>
<li>
<p>Aligned the <strong>Lighthouse metric trends chart</strong> date range with the score trends chart for consistency.</p>
</li>
<li>
<p>Lighthouse charts now display up to <strong>6 months of data</strong> on both views.</p>
</li>
</ul>
]]>
            </summary>
                                    <updated>2026-04-06T07:13:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-03-27]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-03-27" />
            <id>https://ohdear.app/56</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added support for <strong>historical data</strong> via the API.</li>
<li>Exposed <strong>crawled URLs</strong> (both brief and detailed) through new API endpoints.</li>
<li>Added support for <strong>dashboard URLs and documentation URLs</strong> in the OpenAPI spec.</li>
<li>Introduced an optional <strong>origin IP address</strong> for DNS Blocklist checks.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Updated the <strong>OpenAPI specification</strong> with historical runs, crawled URLs, and improved Broken Links output.</li>
<li>Updated the <strong>Oh Dear CLI AI agent skill</strong> to support historical and crawled URLs endpoints.</li>
<li>Added guardrails to prevent unintended <strong>reseller team deletions</strong>.</li>
<li>Disallowed team deletions entirely from the admin interface.</li>
<li>Updated the <strong>affiliate commission rate</strong> from 25% to 20%.</li>
<li>Improved Broken Links UI with better <strong>status code positioning</strong> and mobile display.</li>
<li>Ensured only a single <strong>og:image</strong> is rendered on blog posts.</li>
<li>Reordered documentation indexes for better rendering in the feature list sidebar.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed DNS change notifications incorrectly showing “No changes.”</li>
<li>Fixed multiple causes of <strong>false DNS change alerts</strong>, including ignored-type filtering and failed-run baselines.</li>
<li>Fixed DNS Blocklist false positives for domains without A records and for <code>www</code> domains where the apex has no A record.</li>
<li>Fixed Broken Links false alerts and ensured globally whitelisted URLs no longer appear as broken links.</li>
<li>Fixed a server error when all monitors were removed from a status page.</li>
<li>Fixed the “Add monitor” button being hidden by long labels on status pages.</li>
<li>Fixed an issue where dashboard access was locked while SEPA subscription payments were in progress.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-03-30T04:49:35+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-03-20]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-03-20" />
            <id>https://ohdear.app/55</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added <strong>dark mode support</strong> to the dashboard.</li>
<li>Cron failure webhooks now include <strong>monitor and cron details</strong> for better debugging.</li>
<li>Added <strong>activity logging</strong> when a user deletes their team.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved the <strong>Oh Dear CLI help command</strong> to provide clearer guidance for users and AI tools.</li>
<li>Increased readability of <strong>DNS records</strong> in the UI.</li>
<li>Improved handling of <strong>server timezone changes</strong> in cron checks.</li>
<li>Added validation to the <strong>profile information update form</strong>.</li>
<li>Moved tab styling to a shared component for more consistent UI across the app.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a server error on the <strong>Domain Checks</strong> screen when RDAP fields were missing.</li>
<li>Fixed multiple issues with <strong>dropdowns</strong> not rendering correctly or appearing outside the viewport.</li>
<li>Fixed incorrect active state for the <strong>Billing</strong> menu when no plan is active.</li>
<li>Fixed text overflow issues for long URLs on the dashboard.</li>
<li>Fixed duplicate zero-value rows and incorrect VAT display on the <strong>Billing</strong> screen.</li>
<li>Fixed JavaScript errors when loading or viewing charts.</li>
<li>Fixed chart updates and rendering issues when filtering results or viewing performance metrics.</li>
<li>Fixed crashes caused by null active subscriptions and prevented deletion of reseller teams with active managed teams.</li>
<li>Fixed tabs not working correctly in certain contexts (including uptime history views).</li>
<li>Fixed incorrect error handling by returning <strong>422 responses</strong> for invalid uptime metric filters.</li>
<li>Fixed VAT calculation issues for <strong>prorated invoices</strong> in Yuki exports.</li>
<li>Fixed settings overwrite issues when merging domain check settings.</li>
<li>Fixed the notification editor showing incorrect channel fields.</li>
<li>Fixed DNS change notifications incorrectly showing “No changes.”</li>
<li>Fixed display of detailed failure information for older health check runs.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-03-20T20:10:30+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-03-13]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-03-13" />
            <id>https://ohdear.app/54</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>When email notifications are disabled due to repeated bounces, team owners are now informed <strong>where that email address is configured</strong>, making it easier to remove or update it.</li>
<li>The <code>/api/me</code> endpoint now exposes the <strong>monitor IDs and status page IDs</strong> that a scoped API token has access to.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a UI issue where a <strong>dropdown was clipped</strong> on the Team Notifications page.</li>
<li>Added a <strong>validation message</strong> when a user attempts to save a notification channel without selecting a notification type.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-03-16T06:09:01+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-03-06]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-03-06" />
            <id>https://ohdear.app/53</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added new Mobile Dashboard</li>
<li>Added a <strong>warning state for uptime checks</strong>. If the primary check location fails but the secondary succeeds, the monitor will show a warning instead of downtime, helping detect regional connectivity issues.</li>
<li>Added support for Slack webhook–compatible notification channels.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Implemented a <strong>TCP connection limit</strong> on our uptime checking servers to improve stability.</li>
<li>Improved how <strong>uptime checks respect client timeout settings</strong>, including older or higher configured values.</li>
<li>Improved performance of the <strong>uptime report page</strong> during long ongoing downtimes.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed dropdown overflow on the <strong>monitors list</strong> page.</li>
<li>Fixed crawler speed being saved to the incorrect JSON column.</li>
<li>Fixed <strong>Ping and TCP charts</strong> so they render consistently with HTTP performance graphs.</li>
<li>Invoices now correctly store the <strong>Billing Entity Name</strong> instead of relying on the team name.</li>
<li>The <strong>affiliate banner</strong> is no longer shown to resellers or their managed teams.</li>
<li>AI check run frequency is now hidden on <strong>mobile screens</strong>.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-03-07T08:48:21+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-02-27]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-02-27" />
            <id>https://ohdear.app/52</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Released <strong>v5 of the Oh Dear CLI</strong>, including support for a custom configuration path.</li>
<li>Improved the <strong>Changelog</strong> with a cleaner overview, pagination, and dedicated detail pages.</li>
<li>On the <strong>Manage Team</strong> page, team owners can now see how members signed up (email/password, Google, or GitHub).</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Updated the layout of <strong>DNS Blocklist results</strong> to use a wider table, aligning better with the marketing design.</li>
<li>Enhanced the <strong>Timeline component</strong> to clearly show when a request times out after being sent to the server (e.g. DNS/TCP/SSL succeeded but no response was received).</li>
<li>Completely rewrote the <strong>CLI documentation</strong>, including updated commands, examples, and new sections.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Prevented unauthorized teams from viewing the <strong>Port check</strong> in monitor settings.</li>
<li>Added a clear <strong>timeout banner</strong> for Sitemap checks when the timeout limit is reached.</li>
<li>Fixed an issue in the <strong>DNS Blocklist check</strong> where domains could be incorrectly marked as blocked due to parsing errors.</li>
<li>Resolved a reseller issue where <strong>deleted teams</strong> were still shown in the reseller table.</li>
<li>The affiliate banner is no longer shown to <strong>resellers or their managed teams</strong>.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-28T03:10:26+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-02-20]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-02-20" />
            <id>https://ohdear.app/51</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added a <strong>performance history graph</strong> to visualise uptime performance over time.</li>
<li>Added a new <strong>NTFY notification destination</strong> option.</li>
<li>DNS Blocklist checks are now visible in the <strong>top navigation menu</strong>.</li>
<li>Added dedicated <strong>history tabs</strong> for DNS Blocklist and Port Scanner checks.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Updated the <strong>OpenAPI specification</strong> with response documentation for AI check endpoints, added NTFY as a notification destination, and included a managed teams update endpoint.</li>
<li>Updated the <strong>PHP SDK</strong> with missing API resources and added reseller endpoints.</li>
<li>Documentation now properly honours text/markdown requests from LLMs for docs, FAQs, and blog posts.</li>
<li>Performance alerts now use <strong>p95 percentiles</strong>, reducing false positives caused by single slow requests.</li>
<li>Added additional percentile validation (p30/p70) to further suppress false performance alerts.</li>
<li>Cloudflare caching now varies by <strong>Accept header</strong>, and ResponseCache differentiates between Markdown and HTML responses.</li>
<li>Improved blog styling and added support for <strong>Markdown tables</strong>.</li>
<li>Improved performance for slow <strong>status pages</strong>.</li>
<li>Updated outdated SDK documentation on the docs site.</li>
<li>DNS Blocklist feature enhancements and documentation updates.</li>
<li>Force address collection during checkout to ensure accurate invoicing in Yuki.</li>
<li>Improved RDAP rate limiting for domain checks using per-server throttling and adaptive frequency.</li>
<li>Reseller logic updated so subteams remain on trial if the parent reseller team is still on trial.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed an issue where fetching a monitor by URL did not search across all teams and could incorrectly return 404.</li>
<li>Fixed passkey authentication issue.</li>
<li>Fixed DNS check behaviour so TTL changes are stored without triggering alerts.</li>
<li>Updated used-IPs list to correctly format IPv6 addresses.</li>
<li>Performance checker now resets to success when there are insufficient samples (e.g., after changing check frequency).</li>
<li>Fixed visual issue in documentation where gridlines overlapped text.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-20T23:56:36+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-02-13]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-02-13" />
            <id>https://ohdear.app/50</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Users can now enable the <strong>HSTS header</strong> on their custom-domain status pages.</li>
<li>Recurring maintenance windows can now <strong>cross over to the next day</strong>.</li>
<li>Added <strong>images</strong> to the DNS Blocklist and Port Scanning feature pages for improved clarity and presentation.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved the <strong>Ping uptime checker</strong> by resolving the hostname before pinging the IP address. This avoids DNS-related timeouts and returns a clear error message if DNS resolution fails.</li>
<li>Optimised <strong>dashboard database queries</strong>, reducing render time by <strong>53%</strong>.</li>
<li>Updated the <strong>OpenAPI specification</strong> to reflect all current API endpoints and structures.</li>
<li>Updated and restructured documentation:
<ul>
<li>Split documentation per page</li>
<li>Added .md output</li>
<li>Introduced llms.txt helpers to make documentation easier to retrieve for AI agents</li>
</ul>
</li>
<li>Added <strong>materialized views in ClickHouse</strong> to improve performance for large-range data queries (e.g. over one year).</li>
<li>Began addressing edge cases where invoices were not correctly exported to Yuki and therefore not sent via PEPPOL.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a server error that occurred when adding a monitor with an invalid URL; the UI now shows a proper validation error instead.</li>
<li>Applied multiple <strong>security hardening improvements</strong> across the application based on findings from a recent security audit.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-16T20:22:32+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-02-06]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-02-06" />
            <id>https://ohdear.app/49</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved DNS blocklist checks so they continue running even if one blocklist times out. Timeouts are now clearly shown in the results, and a new history entry is created whenever the timeout state changes.</li>
<li>Added validation rules and tests for the AI monitor general settings to improve reliability.</li>
<li>Added an AI monitor label field to make it easier to label AI monitors when creating them outside the wizard.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a UI issue where the pricing calculator was not visible when using dark mode.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-13T08:53:30+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-01-30]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-01-30" />
            <id>https://ohdear.app/48</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added <strong>port checking</strong> functionality to our uptime checking servers.</li>
<li>Added <strong>port checks</strong> and <strong>DNS blocklist checks</strong> to the list of available checks on the main dashboard.</li>
<li>Introduced <strong>recurring maintenance windows</strong> for more flexible scheduling.</li>
<li>Added an optional <strong>delay_seconds</strong> parameter to the /stop-maintenance API endpoint.</li>
<li>AI Checker can now <strong>suggest the first prompt</strong> automatically.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Updated our <strong>competitor comparison</strong> pages.</li>
<li>Changed the check interval for <strong>DNS blocklist checks</strong> to <strong>every 4 hours</strong>.</li>
<li>Upgraded the application to <strong>Livewire 4</strong>.</li>
<li>Updated the <strong>pricing page</strong> layout and presentation.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a bug where <strong>performance alerts</strong> incorrectly reported sudden performance changes.</li>
<li>Fixed a server error on the <strong>Uptime check details</strong> page caused by Livewire hydration issues.</li>
<li>Fixed the <strong>sitemap checker</strong> to correctly respect the <strong>20-minute timeout</strong>.</li>
<li>Fixed an issue where <strong>invoice line amounts</strong> could not be zero for resellers who hadn’t exceeded their quota yet.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-01-23]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-01-23" />
            <id>https://ohdear.app/47</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved how Cron check results and history handle pending states, ensuring clearer and more accurate status displays.</li>
<li>Added Instagram to the Broken Links whitelist to reduce false positives.</li>
<li>Updated our pricing page with additional competitor comparisons and more content above the fold for better clarity.</li>
</ul>
<h2 id="changes">Changes <a href="#changes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#changes">#</a></h2>
<ul>
<li>Removed the Certificate Transparency section from our marketing materials.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-01-16]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-01-16" />
            <id>https://ohdear.app/46</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved the Uptime checker by sanitising non-UTF-8 characters before JSON serialization, preventing invalid responses from causing issues.</li>
<li>Updated and refined the Third-party integrations pages, and added new bounties for Ansible and WordPress.</li>
<li>Optimised Sitemap checks to avoid loading the full payload of each URL, improving performance and reducing memory usage.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed an issue where social-login owners could not require 2FA for team members.</li>
<li>Increased the maximum number of Application Health check results from 50 to 100.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-01-09]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-01-09" />
            <id>https://ohdear.app/45</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li><strong>Peppol invoicing</strong> is now active. Belgian B2B invoices are automatically sent via the Peppol network.</li>
<li>The <strong>Lighthouse History</strong> page now shows the <strong>full history of runs and metrics</strong>, not just recent results.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved <strong>tax calculations</strong> from Stripe by correctly handling VAT-inclusive and VAT-exclusive product pricing.</li>
<li>Lighthouse charts now <strong>auto-adjust their scale</strong> when showing or hiding metrics, making comparisons easier.</li>
<li>Added a <strong>close icon</strong> to the Support Bubble when it’s opened.</li>
<li>Updated documentation for clarity and accuracy.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Added a fallback to <strong>WHOIS</strong> when RDAP does not return an expiration date for <strong>.fi domains</strong>, ensuring domain expiration is reported correctly.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2026-01-02]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2026-01-02" />
            <id>https://ohdear.app/44</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>
<p>Updated the <strong>Lighthouse checker</strong> to correctly audit <strong>HTTP sites</strong> when requested. This avoids automatic upgrades to HTTPS caused by modern browsers and ensures more accurate results.</p>
</li>
<li>
<p>Significantly improved <strong>marketing site performance</strong>:</p>
<ul>
<li>Converted over <strong>100 SVGs</strong> to sprites for faster rendering.</li>
<li>Reduced overall <strong>JavaScript bundle size</strong>.</li>
<li>Removed unused libraries from marketing pages, including Chart.js.</li>
<li>Authentication-related scripts now load <strong>only</strong> on login and registration pages.</li>
<li>Replaced Axios with the browser’s native <code>fetch()</code> API.</li>
<li>Removed the Gill Sans webfont, reducing unnecessary font loading.</li>
<li>Applied multiple frontend optimizations to improve load speed and responsiveness.</li>
</ul>
</li>
<li>
<p>Improved <strong>menu performance</strong> by only initializing interactive components when needed, reducing page-load overhead.</p>
</li>
<li>
<p>Enhanced <strong>blog performance and SEO</strong>:</p>
<ul>
<li>Fixed Open Graph metadata for blog posts.</li>
<li>Improved image loading with preloading and prefetching.</li>
<li>Added missing author, timestamp, and alt-text metadata.</li>
<li>Ensured SEO tags are consistently passed to the main blog views.</li>
</ul>
</li>
<li>
<p>Improved user seeding logic so new Oh Dear users always land on the <strong>Oh Dear team</strong> after login, instead of a reseller team.</p>
</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed Lighthouse checks incorrectly failing when disabled metrics or categories exceeded thresholds.</li>
<li>Fixed a metadata issue where the monitor name was used instead of the site name in blog Open Graph data.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-12-26]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-12-26" />
            <id>https://ohdear.app/43</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added support for mobile Lighthouse checks, allowing performance audits to better reflect mobile user experiences.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved sitemap URL reachability to ensure more reliable sitemap checks.</li>
<li>The Public API now lets you set the new_links_only and force_crawl_urls broken link settings when creating or updating monitors.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed an issue where cron titles could overflow the page width in the monthly report UI.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-12-19]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-12-19" />
            <id>https://ohdear.app/42</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added Grok support to the AI checker.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Oh Dear is now compatible with PHP 8.5.</li>
<li>The AI checker now shows a cost warning when selecting an hourly check frequency.</li>
<li>Updated documentation for clarity and accuracy.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Preserved query strings in Status Page history and secret update links.</li>
<li>Fixed Status Page history links to consistently use relative URLs.</li>
<li>Fixed an issue in the Status Page template editor where typed text did not fully appear while editing.</li>
<li>Fixed a broken link in the “How to configure maintenance windows” documentation.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-12-12]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-12-12" />
            <id>https://ohdear.app/41</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added an anomaly detection Slack alert to flag potential worldwide issues when an unusually high number of notifications are being sent.</li>
<li>Added new Claude models to the AI checker.</li>
<li>Launched a new Careers section on the site.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved the AI checker browser session to return clear JSON validation errors instead of redirecting.</li>
<li>Truncated large AI checker JSON outputs to keep results readable; users are guided to screenshots for visual verification when needed.</li>
<li>Fine-tuned AI checker prompts to reduce token usage.</li>
<li>Reduced the maximum token limit to 30,000.</li>
<li>Cleaned up AI checker HTML output by trimming unnecessary SVGs, images, and extra markup.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a Passkeys issue caused by a missing configuration value after a package upgrade.</li>
<li>Performance response time is now correctly included in the Monitors API response.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-12-05]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-12-05" />
            <id>https://ohdear.app/40</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Simplified how VAT is handled in Stripe / Cashier.</li>
<li>Enabled caching on status badges. Previously, when session middleware was active, Cloudflare ignored cache-control headers due to set-cookie behavior; this is now resolved.</li>
<li>The used-ips endpoint is now cached through Cloudflare for improved performance.</li>
<li>Sitemap payloads are now always encoded as UTF-8 to ensure correct display in notifications.</li>
<li>Optimised sitemap generation memory usage to avoid OOM issues.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Corrected Japanese translations on status pages.</li>
<li>Custom headers are now correctly sent during scheduled sitemap runs.</li>
<li>Fixed a UI issue in the monthly uptime report email.</li>
<li>Resolved a problem where the performance summary always returned “Error.”</li>
<li>Request Timeline: fixed errors when totalTime was 0 and corrected percentage calculations.</li>
<li>Lighthouse notification settings no longer overwrite frequency_* values.</li>
<li>Fixed rounding issues for Lighthouse metric values in both notifications and the UI.</li>
<li>Updated default metric thresholds for Lighthouse notifications.</li>
<li>Prevented notifications from sending during an active maintenance period.</li>
<li>Resolved false positive “problem fixed” events for skipped health checks</li>
<li>The crawler now correctly reports URLs with new lines in the HTTP Host header as invalid.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-11-28]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-11-28" />
            <id>https://ohdear.app/39</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added longer notification snooze options, including 6 months and 1 year.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Our robots.txt crawler now sends the correct headers.</li>
<li>Disabling the scheduled task check no longer deletes its cron definitions.</li>
<li>Application Health checks no longer validate SSL certificates, since SSL validation is already handled by the Certificate Health check.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a broken toggle in the DNS monitor settings.</li>
<li>Fixed a server error that occurred when creating a Status Page update template with a very long title.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-11-21]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-11-21" />
            <id>https://ohdear.app/38</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added support for multiple Lighthouse servers per continent to improve performance and regional accuracy.</li>
<li>Improved compatibility with password managers by adding a well-known passkey endpoint.</li>
<li>Added a Slack alert that triggers whenever the peak monitor count is updated.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Lighthouse checks are now dispatched hourly instead of daily.
The scheduler now correctly determines whether a Lighthouse check has run recently, ensuring checks aren’t skipped when queue processing takes longer than expected.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-11-14]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-11-14" />
            <id>https://ohdear.app/37</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added an option for resellers to allow managed team users to create, update, and delete monitors.</li>
<li>The Status page now shows the full update history, not just the last 7 days.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Updated reseller documentation to clearly explain the different available user roles.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed an issue where CLS input fields in Lighthouse settings did not accept decimal values.</li>
<li>Adjusted sorting on the Broken Links report so ignored links now appear at the bottom of the list, making new or active issues easier to find.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-11-07]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-11-07" />
            <id>https://ohdear.app/36</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added a request waterfall timeline to uptime checks, providing clearer insight into each stage of request execution.</li>
<li>Added AI monitoring to the Oh Dear documentation features page.</li>
<li>Introduced a feature allowing resellers to remove managed teams.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved performance records ingestion, resulting in faster data display across the UI.</li>
<li>Updated copy across multiple sections: DNS, Broken Links, Lighthouse, and Uptime Monitoring pages, for clarity and consistency.</li>
<li>On the Broken Links report UI, newly discovered links now appear at the top of the list, ensuring they are prioritized over ignored ones.</li>
<li>Added a JavaScript client example to the MCP server documentation.</li>
</ul>
<h2 id="bug-fixes">Bug Fixes <a href="#bug-fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#bug-fixes">#</a></h2>
<ul>
<li>Fixed an issue that broke the UI when updating notification throttling and frequency settings.</li>
<li>Fixed an issue where, if two monitors went down simultaneously on the status page, only one monitor’s updates were displayed.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-10-31]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-10-31" />
            <id>https://ohdear.app/35</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Teams can now choose custom plans, providing more flexibility in managing subscriptions.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved uptime charts and the preview charts on the monitor list. Charts now correctly display when uptime data includes sub-millisecond values, instead of appearing as a flat line.</li>
<li>Enhanced documentation for clarity.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-10-24]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-10-24" />
            <id>https://ohdear.app/34</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added support for Stripe metered billing for resellers.</li>
<li>Skipped non-unique URL checks in image sitemaps.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Refactored scheduled task logs:
<ul>
<li>Logs are now retained for 45 days.</li>
<li>At least 10 pingFinished entries are always kept.</li>
<li>Better handling of pingStarting/pingFinished pairs.</li>
</ul>
</li>
<li>Improved scheduled task validation, only form fields relevant to the selected cron type are now validated.</li>
<li>Refined UI across multiple sections for enhanced usability and visual consistency.</li>
<li>Ensured all documentation categories are now included in the mobile menu.</li>
<li>Added average packet loss to the uptime chart tooltip and fixed sub-millisecond display precision.</li>
</ul>
<h2 id="bugfixes">Bugfixes <a href="#bugfixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#bugfixes">#</a></h2>
<ul>
<li>Fixed an issue where the secondary location tab showed incorrect HTTP response headers.</li>
<li>Added unique wire keys to prevent input leakage on Uptime, Notifications, and Broken Links settings pages.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-10-17]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-10-17" />
            <id>https://ohdear.app/33</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new">New <a href="#new" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new">#</a></h2>
<ul>
<li>Added a new UI section showcasing all our third-party integrations, everything you can connect to Oh Dear in one place.</li>
<li>Added a visible meta payload in scheduled task details so users can easily see when there was an issue during execution.</li>
</ul>
<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>The uptime secondary checker now runs from the same continent as the primary one, improving accuracy for users with regional geo-blocking and ensuring compliance for EU-based users who require checks to stay within their region.</li>
<li>Added an “AI setup” option in the monitor creation flow. It’s currently in closed beta, with a “Coming soon” notice shown for all other users.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-10-10]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-10-10" />
            <id>https://ohdear.app/32</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Improved UI on the monitor list, removing the small chart stutter that happened during poll refreshes.</li>
<li>Polished the uptime settings interface for a cleaner experience.</li>
<li>Uptime buckets on the status page are now timezone-aware.</li>
<li>Status page queries have been optimized to load much faster.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed an issue in the Crawler for URLs that contained .. (dot-dot) syntax.</li>
<li>Fixed minor styling inconsistencies across the blog.</li>
<li>Fixed an issue with the throttle_failed_interval_unit in Notification Settings that caused incorrect throttling behavior for some users.</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-10-03]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-10-03" />
            <id>https://ohdear.app/31</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>in the uptime results we now show results from both uptime checkers, should the first one fail</li>
<li>on the billing screen, you can now see your invoices without having to go to the Stripe portal</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-09-25]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-09-25" />
            <id>https://ohdear.app/30</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<ul>
<li>added a OpenAPI spec to <a href="https://ohdear.app/docs/integrations/the-oh-dear-api">our API docs</a></li>
<li>performance improvements</li>
<li>fix bugs around whitelisting broken URLs</li>
<li>building <a href="https://ohdear.app/news-and-updates/apply-for-the-ai-monitoring-closed-beta">AI monitoring</a></li>
<li>launched <a href="https://request-mirror.ohdear.app">Request Mirror</a></li>
<li>lauched <a href="https://dnsinfo.ohdear.app">DNS info</a></li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-09-15]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-09-15" />
            <id>https://ohdear.app/29</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<p>Big performance improvements to our website, dashboard and uptime checks. <a href="https://ohdear.app/news-and-updates/speed-improvements-to-the-dashboard-website-job-processing">more details</a></p>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-08-28]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-08-28" />
            <id>https://ohdear.app/28</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="major-new-features">Major new features <a href="#major-new-features" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#major-new-features">#</a></h2>
<ul>
<li>We've added 🏓 ping and 🔌 TCP Port monitoring. See: <a href="https://ohdear.app/news-and-updates/introducing-ping-and-tcp-port-monitoring-and-lots-of-other-improvements">Introducing Ping &amp; TCP port monitoring</a></li>
<li>you can now customize the frequency of the checks <a href="https://ohdear.app/news-and-updates/speed-improvements-to-the-dashboard-website-job-processing">more details</a></li>
</ul>
<h2 id="updates">Updates <a href="#updates" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#updates">#</a></h2>
<ul>
<li>we've published a new major version of <a href="https://github.com/ohdearapp/ohdear-php-sdk">our SDK</a></li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-08-22]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-08-22" />
            <id>https://ohdear.app/27</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<p>Gearing up for a big feature update that introduces Ping &amp; TCP monitoring early next week 👀</p>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-08-15]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-08-15" />
            <id>https://ohdear.app/26</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<p>This week, we introduced an option to prevent a status page from being index by search engines.</p>
<p>Meanwhile, we're also hard at work polishing the upcoming Ping / TCP monitor. We're now testing this extensively in our staging environment.</p>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-08-08]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-08-08" />
            <id>https://ohdear.app/25</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>we've added notification logs: https://ohdear.app/news-and-updates/introducing-our-new-notification-logs</li>
</ul>
<p>Meanwhile we're also focussing on launching our <a href="https://ohdear.app/news-and-updates/why-we-will-be-making-breaking-changes-in-our-api-soon">Ping / TCP checks</a></p>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:28+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-07-26]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-07-26" />
            <id>https://ohdear.app/24</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>we've added a new uptime check location: Stockholm 🇸🇪</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-07-18]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-07-18" />
            <id>https://ohdear.app/23</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>we are working on adding support for ping and TCP monitoring. You'll find some <a href="https://freek.dev/2885-introducing-spatieping-and-spatiesimple-tcp-client">more info in this blog post</a>.</li>
<li>we slightly adjusted the layout of the app: we now use Inter as the base font.</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>we'll now deleted configured scheduled jobs monitors when the cron check is disabled</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-07-04]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-07-04" />
            <id>https://ohdear.app/22</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>a new &quot;Detected Certificates&quot; tab was added to the certificate health check screen. This tab will show all certificates we dedected for a site.</li>
<li>we added a troubleshooting screen for lighthouse checks</li>
<li>add graph was adding to the lighthouse result history</li>
<li>on the new &quot;Usage&quot; screen you can now see how much sites / scheduled jobs you are using against your plan limits</li>
<li>for the PHP developers amongst you: you'll be happy to know our code base has reached PHPStan level 6 💪</li>
<li>show application health client error deails in application health report alert message</li>
<li>add named windows to 'start-maintenance' api endpoint</li>
<li>add Cloudflare email script link to global broken links whitelist</li>
<li>complete static analysis coverage for the entire application</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>small styling fixes</li>
<li>fixed the 'domain' section in monthly reports for sites with unsupported RDAP TLDs</li>
<li>fix seo meta tags for docs</li>
<li>render correct site count when 'sites with issues' tab selected</li>
<li>fix internal errors when handling partial payments</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-06-27]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-06-27" />
            <id>https://ohdear.app/21</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>you can now name a maintaince period, both in our UI and via our API</li>
<li>we've improved the perceived performance of the list of sites: we first render placeholders, so the users get a fast response, and then replace those with the actual data as soon as it is loaded.</li>
<li>we can now notify you via Google Chat</li>
<li>we now accept payments via Revolut</li>
<li>our registration page has been streamlined</li>
<li>we now mention our available payment methods on the pricing page and in the FAQ</li>
<li>our internal workflow to publish the changelog you are now reading has been improved</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>ensure it is clear which things are clickable, by adding the cursor-pointer CSS class to those elements</li>
<li>all broken links on the marketing website are fixed</li>
<li>our crawler checks are scheduled more reliably</li>
<li>we now correctly clean up old historical data</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-06-20]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-06-20" />
            <id>https://ohdear.app/20</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>add additional (and standardise) url validation</li>
<li>move uptime summary below uptime chart</li>
</ul>
<h2 id="internal">Internal <a href="#internal" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#internal">#</a></h2>
<ul>
<li>continuous improvements to static analysis coverage</li>
<li>bug fixes</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>apply all custom headers to application health check</li>
<li>apply correct host header checks for status pages and GTM scripts</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-06-13]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-06-13" />
            <id>https://ohdear.app/19</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>restored uptime summary component in uptime/performance results</li>
<li>add retries and delays when calling third-party APIs during monitoring</li>
<li>increased static analysis level for internal testing</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>fix run result alerts in multiple check components</li>
<li>clarify run result errors in multiple check components</li>
<li>fixed performance chart scaling issues</li>
<li>improved exception handling in checks and reports</li>
<li>other bug fixes</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-06-06]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-06-06" />
            <id>https://ohdear.app/18</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>updates to uptime redesign</li>
<li>updates to check report page alert cards</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>fixed a an issue where performance metrics were sometimes not being stored for offline sites</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-05-30]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-05-30" />
            <id>https://ohdear.app/17</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>automatically disable lighthouse reports that error (or time out) three times in a row an alert the team owner</li>
<li>streamlined onboarding for new teams making it easier and faster to create your first site</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>added clearer alert text to distinguish between SSL certificate and domain-related subjects</li>
<li>only use Google Tag Manager for Oh Dear domains on status pages</li>
</ul>
<h2 id="internals">Internals <a href="#internals" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#internals">#</a></h2>
<ul>
<li>removed backend dependencies</li>
<li>fix dependency and build warnings for front-end assets</li>
<li>the team is making final touches to an uptime and performance redesign (coming soon!)</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-05-16]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-05-16" />
            <id>https://ohdear.app/16</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>redesigned and simplified <a href="https://ohdear.app/news-and-updates">Oh Dear blog</a></li>
<li>added <a href="https://ohdear.app/docs/integrations/the-oh-dear-api#add-a-site-with-custom-settings">monthly report settings</a> to API</li>
<li>added tag filters to site API</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>added x.com to list of crawler ingore list defaults</li>
<li>fixed API notification permissions issues</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-05-12]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-05-12" />
            <id>https://ohdear.app/15</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>added support for <a href="https://ohdear.app/news-and-updates/you-can-now-log-in-using-passkeys">passkey authentication</a></li>
<li>added API support for <a href="https://ohdear.app/news-and-updates/targeted-snoozes-with-full-history">snoozing to individual cron and health check items</a></li>
<li>added support for monthly site settings via API</li>
<li>internal admin updates to help customer support create custom pricing for enterprise users</li>
<li>internal admin updates tracking cancellation reasons to understand customer usage</li>
<li>removed unused team check history (site check history is still available)</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>fixed an issue with login via passkey authentication</li>
<li>cleaned up site snooze history UI to clearly show active tabs</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-05-02]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-05-02" />
            <id>https://ohdear.app/14</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>added performance charts and tables to monthly site report</li>
<li>added lighthouse report summary to monthly site report</li>
<li>internal reporting, guides and docs to help with support</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>fixed 'ignore' broken link issue with long URLs</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-04-25]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-04-25" />
            <id>https://ohdear.app/13</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Added <a href="https://ohdear.app/changelog/feed">changelog RSS feed</a></li>
<li>Speed improvements to dashboard and performance graphs</li>
</ul>
<h2 id="behind-the-scenes">Behind the scenes <a href="#behind-the-scenes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#behind-the-scenes">#</a></h2>
<ul>
<li>Removed all code related to new ping endpoint</li>
<li>Fixed an issue with deleted site data not executing on schedule</li>
<li>Fixed Clickhouse managed database issues (compute and sharding)</li>
<li>Optimised Clickhouse ingress and queries for performance reporting</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-04-18]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-04-18" />
            <id>https://ohdear.app/12</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new-features">New features <a href="#new-features" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new-features">#</a></h2>
<ul>
<li>On the snooze screen of a check, we now display the history when the check has been snoozed</li>
<li>We've activated new onboarding and offboarding email flows</li>
</ul>
<h2 id="behind-the-scenes">Behind the scenes <a href="#behind-the-scenes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#behind-the-scenes">#</a></h2>
<ul>
<li>All of the uptime and performance statistics have been moved from MySQL to ClickHouse, unlocking future improvements</li>
<li>By leveraging parallel testing, we made our test suite run 3x faster on GitHub Actions</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed a bug where times were not displayed in the correct timezone on the scheduled jobs log</li>
<li>We’ve added help text on various notification screens, making them easier to use</li>
<li>Our status page now gets automatically updated, even if the uptime check is snoozed</li>
<li>We’ve improved the error handling of our DNS checker, making it more reliable</li>
<li>The sitemap checker can now correctly process empty sitemaps</li>
<li>We increased the maximum run time of the sitemap checkers, enabling checking larger sitemaps</li>
<li>A bug was fixed that prevented status pages from being automatically refreshed</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-04-09]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-04-09" />
            <id>https://ohdear.app/11</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<p>🐘 We performed a couple of upgrades and we're now running our entire service on PHP 8.4 and Laravel 12 🥳</p>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-04-04]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-04-04" />
            <id>https://ohdear.app/10</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>When a site is considered offline because of too many redirects, we add a visual indicator to the UI that shows where in the redirect process the limit was reached</li>
<li>Add datetime tooltips for uptime &amp; scheduled tasks, to more clearly show UTC/server/user timezones</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Bugfix timestamp for scheduled task notifications not properly showing</li>
<li>Allow longer application health check URLs on input validation</li>
</ul>
<h2 id="internals">Internals <a href="#internals" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#internals">#</a></h2>
<ul>
<li>Better insights &amp; notifications to subscription updates</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-03-28]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-03-28" />
            <id>https://ohdear.app/9</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="new-features">New features <a href="#new-features" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#new-features">#</a></h2>
<ul>
<li>Allow toggling to only receive <em>new</em> broken links notifications (only when we detect that there are <em>new</em> broken links compared to the previous run)</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed some missing translations on certificate detail pages</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-03-21]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-03-21" />
            <id>https://ohdear.app/8</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>New and improved ping.ohdear.app is now processing incoming traffic, around 5x faster than the old system 🎉</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed performance chart on dashboard rendering backwards in edge cases</li>
<li>Bugfix custom thresholds for certificate expiration monitoring</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-03-14]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-03-14" />
            <id>https://ohdear.app/7</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Extended the Broken Links detail pages with fine-grained &quot;Solutions&quot;, offering insights &amp; actionable tips to resolve the detected problems</li>
<li>Added ability to override robots.txt when crawling, allowing &quot;force crawl&quot; and &quot;force do not crawl&quot; URL options</li>
<li>Tweaked blog layout for minor improvements</li>
<li>Better internal management of our testimonials</li>
<li>Applied response-caching for all marketing pages of the site (server-side rendering from 500ms -&gt; 100ms)</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Applied smarter rate limiting &amp; retry logic when deliver bulk notifications to the same destination (ie: same Slack channels)</li>
<li>Fixed dark-mode styling on the homepage for small top-banner missing CSS</li>
<li>Fixed performance issue on uptime check pages not loading when sites were down for &gt; 24hrs</li>
<li>Fixed the &quot;Feature announcements&quot; posts on the blog not sorting properly</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-03-07]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-03-07" />
            <id>https://ohdear.app/6</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Automated deployments to staging &amp; production for new ping-beta endpoint</li>
<li>Updated layout for the <a href="/news-and-updates">blog</a></li>
<li>Finished changes to the laravel-schedule-monitor package to include <a href="https://github.com/spatie/laravel-schedule-monitor/pull/125">a default API URL</a> and <a href="https://github.com/spatie/laravel-schedule-monitor/pull/123">optional different ping endpoint</a></li>
<li>Added caching to our <a href="/features/status-pages">Status Pages</a> to better handle surges in traffic</li>
<li>Updated <a href="/docs/notifications/telegram">Telegram Notification setup instructions</a> for clarity</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fixed wrong IP for the New York Lighthouse server being reported in the <a href="/docs/faq/what-ips-does-oh-dear-monitor-from">IPs Oh Dear uses</a></li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-02-28]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-02-28" />
            <id>https://ohdear.app/5</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Fixed message when certificates expire, to show actual time remaining before expiry instead of &quot;soon&quot;</li>
<li><a href="/affiliate-program">Affiliate page</a> updated</li>
<li>Introduction of this Changelog section 🥳</li>
<li>Internal improvements to our helpdesk/support integrations</li>
<li>Clarified the setup instructions for <a href="/docs/notifications/telegram">Telegram Notifications</a></li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-02-21]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-02-21" />
            <id>https://ohdear.app/1</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Pass-through IP address for ping-beta customers</li>
<li>Allow local testing of ping callbacks</li>
<li>Show Sitemap and Sitemap URL issues separately</li>
<li>Filter invalid Markdown tags when configuring a Status Page</li>
<li>Replace bespoke cookie banner with Cookiebot</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Prevent status update requests as a user is typing</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-02-14]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-02-14" />
            <id>https://ohdear.app/2</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Allow a sites' Friendly Name to be configured straight in the Add Site modal</li>
<li>Ensure the check names are always human readable</li>
<li>Expose Sitemap crawling issues more clearly to the end-user</li>
<li>Add <a href="https://ohdear.app/docs/integrations/the-oh-dear-api#status-pages">API documentation for creating status pages &amp; status page sites</a></li>
<li>Upgraded from Tailwind CSS 3 to Tailwind CSS 4</li>
</ul>
<h2 id="beta-releases">Beta releases <a href="#beta-releases" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#beta-releases">#</a></h2>
<ul>
<li>A newly architected ping architecture for receiving <a href="/features/scheduled-task-monitoring">cron jobs/scheduled tasks pingbacks</a> is ready for internal testing</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-02-07]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-02-07" />
            <id>https://ohdear.app/3</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="activity">Activity <a href="#activity" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#activity">#</a></h2>
<ul>
<li>The team is attending LaraconEU 2025 to meet with clients &amp; like-minded developers 🥳</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Changelog: 2025-01-31]]></title>
            <link rel="alternate" href="https://ohdear.app/changelog/2025-01-31" />
            <id>https://ohdear.app/4</id>
            <author>
                <name><![CDATA[Oh Dear]]></name>
            </author>
            <summary type="html">
                <![CDATA[<h2 id="improvements">Improvements <a href="#improvements" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#improvements">#</a></h2>
<ul>
<li>Redesigned the &quot;Add Site&quot; screen for simplicity, advanced options are now hidden by default</li>
<li>Add download and uptime exports per site</li>
<li>Add daily downtime summary export</li>
<li>Add sync status page sites api endpoint</li>
<li>Add create status page api endpoint</li>
<li>Add delete status page site api endpoint</li>
</ul>
<h2 id="fixes">Fixes <a href="#fixes" class="heading-permalink" aria-label="Permalink" data-clipboard-text="https://ohdear.app/changelog/feed#fixes">#</a></h2>
<ul>
<li>Fix for handling of bounced e-mail notifications</li>
</ul>
]]>
            </summary>
                                    <updated>2026-02-22T11:30:37+00:00</updated>
        </entry>
    </feed>
