← Blog / Product Announcement

ShopCanary Is Live
And It Catches What
Throws No Error

Some store problems never show up as an error. A discount keeps paying out after the sale ended, or products drop off your Google feed. ShopCanary watches for those and emails you the evidence. It is live on the Shopify App Store now.

Henning Botha Henning Botha
August 2026 · 7 Min Read · Product Announcement
ShopCanary

A store can break without anything looking broken. No error page, no failed order, nothing red in your admin. Orders keep coming through. The money is wrong.

That is what ShopCanary was built for, and it is now live on the Shopify App Store.

The failures nobody sees

Shopify turned off Checkout Scripts on 30 June 2026. Plenty of stores had their discount and shipping logic living in those scripts. When that logic stopped running, checkout did not complain. It carried on taking orders at the wrong price.

That is the shape of the whole problem. A sale ends and the discount code keeps paying out. A free shipping threshold moves and customers start getting charged for delivery. Products drop out of your Google feed and the ads stop.

None of it raises an error, so none of it reaches you. You find out from a customer, or from a bad month.

What ShopCanary checks

Version one ships two canaries.

Order and discount rules

You tell ShopCanary what should always be true in your store. Orders over $100 ship free. That discount code expired on the 14th. Every order is then checked against those rules as it comes in.

It has to work in that direction. ShopCanary cannot read your intent, and an order with no discount on it might be a broken promotion or a shopper who did not qualify. You declare the rule, so the app knows which one it is looking at.

Your Google Merchant Center feed

The second canary watches the feed your Shopping ads run on. It looks for disapproval spikes and for offer counts that collapse or explode. It also catches product IDs being rewritten underneath you, which resets your performance history if it goes unnoticed.

It reads your own Merchant Center account through your own Google sign in, with read only access, and compares snapshots instead of waiting for Google to email you. Google's email arrives late.

Alerts you can act on

Monitoring apps do not die from missing bugs. They die from sending so much mail that the merchant mutes them. So detecting a problem and interrupting a human are two separate decisions in ShopCanary.

Every finding gets recorded and shows on the dashboard. Whether it emails you depends on how many times in a row the check failed. Alerts sit behind a cooldown that scales with severity, and they escalate only when a critical problem gets around four times worse. An issue closes itself after three clean passes rather than one, because one pass flaps and every reopen is another email.

When an alert does reach you, it carries the evidence. What you expected, what happened, an example order, and a line saying roughly when it started. Something like "this began about two hours after that discount was edited". That last line is what turns an alert into something you can fix.

It tells you when it cannot see

A monitor that has gone quiet looks identical to a store with no problems. For this kind of product that is the failure mode that matters most.

So the weekly summary goes out even when nothing is wrong, and it says what was checked. If a check did not run, it says that instead of reporting all clear. The dashboard leads with a red banner reading "ShopCanary is not checking right now" when its own jobs go stale. If the monitor is blind, nothing else on that page is worth reading.

What it never keeps

ShopCanary reads your orders. It does not keep your customers.

The scrubber works from a list of fields it is allowed to copy, rather than a list of fields to strip out. Customer names, addresses, email, phone, IP and order notes never reach the stored evidence. Built the other way round it would start leaking the day Shopify adds a new field. There are tests that push a full order payload through it and check that none of that survives.

Pricing

The free plan sends you a digest instead of paging you, and it never hides a finding. An upgrade prompt that conceals the problem it is prompting you about is not an honest one.

Now live: ShopCanary is published on the Shopify App Store. Install it from the Shopify App Store. Free plan available, Pro at $19 a month with a 14 day free trial.

Under the hood

ShopCanary runs on Remix and deploys to Fly.io. Order data arrives by webhook, and an hourly pull re-checks what those webhooks delivered. Webhooks are best effort, and a missed one on a monitoring product is worse than a noisy one. It would mean reporting no failures for orders the app never saw. When the two paths disagree, the gap itself gets raised as a finding.

The app also monitors itself. If its own background jobs go stale, it emails me rather than the merchant, and a health endpoint sits outside the app for an uptime monitor to poll. An in process watchdog cannot report its own death.

Where it goes next

Two canaries cover the failures I could find real merchant reports for. Which one gets built next depends on what people tell me. If something in your store has broken without saying a word, I want to hear about it.

Henning Botha
Henning Botha
Founder of HJB CodeForge and builder of ShopCanary. I build software that solves real problems for real businesses.
Get In Touch →
← Previous
Replenora Is Live, and Stocky Is Going Away
Back to Blog →
All Posts