Jonathan Venables · systems & infrastructure

Case study · Aug 2026

UpConduit: a global monitoring SaaS, idea to revenue-ready in 48 hours

Uptime and email-infrastructure monitoring from a seven-region probe network — with accounts, live Stripe billing, branded alerts, public status pages and a world map. I entered a deliberately crowded market partly as a test: how much faster is a second platform when the patterns from the first are already proven? The honest answer surprised me — two days.

RoleFounder — architecture, infrastructure, delivery
Duration48 hours, conception → taking payments
StackAWS serverless × 7 regions · Stripe · Cognito
StatusLive at upconduit.io

01The brief I set myself

Uptime monitoring is a commodity market — dozens of vendors will ping your website. That was partly the point: a crowded market is a fair benchmark. The differentiator came from my own background: twenty years of running email infrastructure taught me that a website going down is loud, but email breaking is silent. A missing DKIM key, a botched SPF edit, a domain quietly landing on a blocklist — nothing crashes, nobody calls, your mail just stops arriving. UpConduit monitors that layer too: MX, SPF, DKIM, DMARC policy strength, blocklists, and drift — alerting the moment records change, even when the new values look valid.

02Constraints first

03The architecture

Seven Lambda probes — London, Virginia, Oregon, São Paulo, Singapore, Sydney, Tokyo — each fire once a minute on EventBridge schedules and write latency snapshots into a single DynamoDB table in London. Only the London primary owns state: it runs the flap-resistant up/down state machine, the staged certificate and domain-expiry ladders, the drift detection, and every alert. The other six measure and report; they never judge. That one decision eliminates duplicate alerts and cross-region races outright.

6 probe regions US ×2 · Brazil · Singapore Sydney · Tokyo measure only — never alert London primary state machine · ladders drift detection · alerts the only judge One DynamoDB table config · state · history users · plans · pages single source of truth Alert channels branded SES email · SMS Slack/Discord/Teams hooks API + dashboard Cognito JWT auth Stripe entitlements Public surfaces status pages · world map
Six regions measure; one region judges. Everything shares one table, and alerts flow from exactly one place.

04Deep dive: alerts that don't cry wolf

Trust is the entire product. Every design choice bends toward quiet correctness: DOWN requires consecutive confirmed failures, recovery alerts exactly once, certificate and domain expiry climb staged ladders (30/15/7 and 60/30/14/7 days) that fire once per rung instead of nagging daily, and page-worthy events are separated from advisory ones — SMS only ever carries downtime and recovery.

Drift detection needed the same discipline. Mail records are fingerprinted so an unexpected change alerts immediately — but the fingerprint deliberately excludes things that change legitimately: DKIM providers rotate which key is live as routine hygiene, so the fingerprint tracks the shape of the configuration, not the key material. Name-server changes — the classic hijack signature — alert with the new servers named, but a domain renewal never fires it. Getting these boundaries right is the difference between an alert someone reads at 2am and one they unsubscribe from.

05Deep dive: never trust a clean you can't validate

Blocklist monitoring has a trap most tools fall into: DNS blocklists refuse queries from shared resolvers, and the refusal is byte-for-byte identical to "not listed". A naive checker reports every domain clean forever and is never caught. UpConduit queries each list's guaranteed-listed test entry alongside every real check — if the canary doesn't come back listed, that list's answers are discarded and reported as unavailable rather than trusted.

The same principle, applied honestly
Some registries block cloud IPs from their WHOIS servers, so domain-expiry data for a few TLDs is unavailable from the probe network. The product says "expiry unknown" with the reason — it does not guess, and it does not hide the gap. A monitoring tool that notices when its own data sources lie is worth more than one that never admits uncertainty.

06Deep dive: the commercial layer

07Outcomes

48 hoursIdea → live product taking payments, every layer designed and shipped solo
7 regions, 5 continentsOne-minute checks worldwide, rendered on a live world map
Full commercial loopAccounts, free tier, Stripe upgrade, entitlements, billing portal
Email-health suiteMX, SPF, DKIM, DMARC, blocklists and drift — the layer competitors ignore
~£5/month to runServerless across the whole fleet; the free tier costs effectively nothing
Monitors itselfUpConduit watches its own site, domains and mail — and its builder's other platforms

08Decisions I'd defend in an interview

Measure everywhere, judge in one place.
Probes report; one region owns truth and alerting. Distributed reads, centralised judgement — most cross-region complexity never gets the chance to exist.
Enter the crowded market on purpose.
Commodity uptime checks earn the right to sell the differentiated thing: email-infrastructure health, where my years of email-infrastructure work could genuinely add something.
Give away the growth loop.
Status pages are free on every plan because each one is an advert a customer publishes for us. Charging for it would be pricing the marketing.
Admit what you can't see.
Canary-validated blocklists, "expiry unknown" with reasons, no fake data anywhere. In monitoring, honesty is not a virtue — it's the specification.

09Why 48 hours was possible

Very little here was invented in those two days. Every pattern was proven once already on CaseConduit — serverless chokepoints, webhook-driven Stripe entitlements, Cognito flows, incident-tested deployment discipline — and built with Anthropic's Claude as the force multiplier, directed by the architecture, constraints and failure-mode thinking that twenty years of infrastructure work provides. The first platform took eight months and plenty of wrong turns; the second was mostly those lessons paying off.