What changed, and the day it changed
Dated entries for the changes a person using this could notice. The dates are the day the work landed, taken from the commit history. There are no version numbers here, because there are none to quote.
How to read this
Work on this started in July 2025. The first entries worth putting in front of a reader are from January 2026, because before that there was nothing a person outside the code could have used.
Only user-visible changes are listed. Rewrites that changed nothing you can see are left out, and so is anything not shipped yet. If it is on this page, it is running.
January and February 2026 — accounts, alerts, credits
26 and 27 January. Transactional email arrived as a proper template set, and with it the things it carries: address verification, password reset, and a CAPTCHA on the ways into an account.
30 January and 5 February. Recipients became something you define once and reuse, and alert conditions grew past telling you when a price drops: a target amount, a percentage move, a change in shipping or import fees, an item coming back into stock. Evaluation moved onto the record itself, so a price is compared against your conditions the moment it is written down rather than on a sweep hours later.
14 February. Each country began to be checked in parallel, in its own isolated session, which is what makes a same-day comparison between destinations mean anything.
25 and 27 February. Credits, as the unit of what you are buying. Support tickets, by email and live chat, as the way to complain about them.
March 2026 — billing, the first public pages, a readable record
3 March. Billing end to end: packages, orders, invoices, and the ledger your credit balance is counted from.
12 and 13 March. Page fetching moved into a service of its own and the extraction was rebuilt around it. Rate limits and single-use checks moved to shared storage so they hold between processes instead of inside each one, extraction health became something we watch, and the sign-in path was hardened with per-address tracking of failed attempts.
14 and 15 March. The first public pages: a landing page, terms and privacy. The credits granted at signup stopped being a constant and became a setting. Every notification event started being recorded with its own trace, which is the machinery behind being able to tell you where a message stopped. Adding products was rewritten so that everything starts by pasting: a link, a CSV dropped on the page, several destinations selected at once.
19 to 25 March. One alert can reach several recipients. Product pages gained per-country statistics and a feed of recent price changes. Check scheduling became something that is adjusted without shipping new code. Sign-in with GitHub and with Facebook, account linking confirmed by password, and rate limiting at the door.
April and May 2026 — where the message lands
4 and 5 April. Slack became a delivery channel, with its own message layout rather than an email pasted into a chat window. The alerts history page landed the same week and, with it, the delivery trace of each alert: what was sent, where, and what the other end said back.
8 and 9 April. Light, system and dark themes across the app. The signed-in home page became a dashboard. The price history table was rebuilt and the charts were replaced with ones that behave like financial charts, because that is the shape of this data.
15 April. Short Amazon share links now resolve to the product they point at, so a link copied from a phone works.
19 April, 28 April and 2 May. WhatsApp became a delivery channel, recipients could be added through a Google sign-in, and each channel got its own switch. Telegram followed, and every recipient got a delivery trace of its own. Days later the Telegram setup stopped requiring anyone to find a chat identifier by hand: you open the bot, press start, and the connection is made.
August 2026 — the operational half
4 August. A single view of notification outcomes across every recipient, so a delivery problem is diagnosed by reading rather than by guessing.
5 and 6 August. Outbound mail can be moved between providers while everything is running. Payment credentials are read when a payment is taken instead of being frozen when the server started, which means a payment route can be repaired without a restart.
The entry we would rather not have needed
11 August. A credit could be spent on a destination the checks never visit. The country was validated after the credit was taken rather than before, so the answer was no and the charge was yes.
It was found while auditing whether a claim on this website was actually true. The order is now the other way around: the destination is validated first and the credit is only touched if the answer is yes. The tests pin the order of those two steps and not just the outcome, because the outcome was already right most of the time, which is exactly why it went unnoticed.