1
0 Comments

I was at the beach with my kids when a client texted that their SSL had expired

Saturday afternoon, kids in the sea, phone buzzes.

Hey, just noticed the site's throwing a big security warning?

Let's Encrypt auto-renewal had failed silently. No email, no alert, nothing, and the first warning came from the client. Their site is a medical certification platform I built and maintain, and they happened to be starting an exam session using it that morning. Pretty bad time to start throwing scary browser warnings!

I didn't have my laptop with me and I was a couple of hours from home, so I ended up sitting on a bench renewing the SSL cert through Laravel Forge on my phone, kids running over every few minutes to ask why I wasn't playing with them. Lucky I got it to work at all.

I run a small consultancy and manage a handful of client websites, and that wasn't the first time something like this had happened. It was just the one that finally made me think: I don't really want to keep doing early morning checks on every site to make sure nothing's quietly broken overnight. I'd rather have something watching them so I don't have to, and pinging me before the client notices.

So I built DomainDash, an idea I've had in my head since 2022, that finally went into production last week.

It checks uptime, SSL expiry, DNS changes, and domain registration across all your client sites. When something goes wrong, it tells you in plain English: HealthySlowDown, instead of "TLS handshake failure" or "HTTP 503". You can forward an alert straight to a non-technical client and they'll actually understand what's going on.

Three things that catch out most client sites (from my unscientific sample):

  1. SSL auto-renewal silently failing because the validation request can't reach the host (usually a recent firewall or DNS change broke it)

  2. Domain expiring because the credit card has expired and no one's logged into the registrar portal since the day it was registered

  3. DNS records changing without warning because someone on the client's team "made a quick fix" and forgot to tell anyone

If you want to try it on a single domain without signing up, there's a free public check tool at domaindash.io/check.

Pricing: free tier (1 site), then $90/yr for 5 sites, $190/yr for 15. Extra sites are $20/yr each, deliberately cheap because the pricing's built around small agencies managing 20+ tiny client sites, not enterprise teams running one big app.

A bit more on the stack, since people often ask: the actual checkers (uptime, SSL, DNS, WHOIS) are small Rust Lambdas that scale to zero between runs, which is what makes the per-site infra cost low enough to support that pricing. The platform itself is Laravel with Inertia + Vue, boring on purpose because I've shipped a lot of those and it stays out of my way. The time-series check results live in TimescaleDB rather than vanilla Postgres, which is a much better fit for the write-heavy, append-only shape that check data has.

What I'm nervous about:

I posted about the launch on my personal LinkedIn last week, and it absolutely tanked: 134 impressions, 2 reactions, 1 comment, 0 signups. In retrospect that's obvious. My LinkedIn is full of people who work at companies with dedicated ops teams, not the people who get texts from clients on a Saturday afternoon. And recruiters, oh so many recruiters.

So I'm doing what I should have done from day one, which is talking to people who actually build and run their own stuff.

I'd love feedback on:

  • Any other consultancy / agency owners here: how are you currently handling this? Homegrown scripts? Paid tools? Vibes and hope?

  • Landing page is at domaindash.io, and brutal feedback is very welcome.

  • Does the "Healthy / Slow / Down" framing land, or does it feel too soft?

Happy to AMA on any of the stack choices, the pricing maths, or the 3-month build.

P.S. If anyone wants to try it on real sites, code NOTAGAIN gets you a free month of Pro, no card required. The name is, regrettably, autobiographical.

posted toAvatar for product DomainDash
DomainDash