<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Canaryflux Blog</title>
    <link>https://canaryflux.com/blog</link>
    <description>Field notes from building a cross-device QA scanner. Bugs we catch, decisions we make, how the scanner works under the hood.</description>
    <language>en-us</language>
    <copyright>Copyright 2026 Canaryflux</copyright>
    <managingEditor>support@canaryflux.com (Canaryflux)</managingEditor>
    <webMaster>support@canaryflux.com (Canaryflux)</webMaster>
    <lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate>
    <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
    <generator>Hand-rolled by the Canaryflux team</generator>
    <atom:link href="https://canaryflux.com/blog/rss.xml" rel="self" type="application/rss+xml" />
    <image>
      <url>https://canaryflux.com/canary-logo.png</url>
      <title>Canaryflux Blog</title>
      <link>https://canaryflux.com/blog</link>
      <width>512</width>
      <height>512</height>
    </image>

    <item>
      <title>Why we built Canaryflux</title>
      <link>https://canaryflux.com/blog/why-we-built-canaryflux</link>
      <guid isPermaLink="true">https://canaryflux.com/blog/why-we-built-canaryflux</guid>
      <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
      <dc:creator>Canaryflux</dc:creator>
      <category>Launch</category>
      <description><![CDATA[A landing page can pass every visual regression test in CI and still be broken on the phone your customer owns. The gap we kept hitting, and why we built a scanner instead of complaining about it.]]></description>
      <content:encoded><![CDATA[
        <p>This is a launch post, so let me be honest about why this product exists.</p>
        <p>We kept watching the same thing happen on shipping teams. The team would push a Friday-night fix, the deploy would go green in CI, every Playwright test would pass, every screenshot diff would come back clean. Then on Monday morning a customer would DM a screenshot of the signup button cut in half on a Pixel 5 — and nobody on the team could reproduce it on their laptop.</p>
        <p>The reason is depressing once you see it: "works on my machine" is even more true now than it was in 2010. Modern CI runs Chrome in a Linux container at a desktop viewport. Lighthouse runs Chrome in a Linux container at a simulated mobile viewport. Visual regression tools run Chrome in a Linux container at a recorded viewport. All of them are simulating what a phone sees. None of them are a phone.</p>
        <p>Canaryflux takes the opposite shape of constraint. Instead of asking the team to write tests, we ask the team to paste a URL. The scanner opens it on a parallel device matrix — iPhone 15 Pro, Pixel 8, Galaxy S25 Ultra, iPad Pro, Desktop Chrome — captures full-page screenshots, console errors, and network failures, then sends the captures to AI vision with a tightly-tuned QA prompt that grades each finding by severity.</p>
        <p>Read the full post at <a href="https://canaryflux.com/blog/why-we-built-canaryflux">canaryflux.com/blog/why-we-built-canaryflux</a>.</p>
      ]]></content:encoded>
    </item>

  </channel>
</rss>
