Dev.to WebDev 🛠 Dev 👁 0 📖 5 min read

1,570 visitors, then a dead domain: what a registry-level suspension actually looks like

oddlyuseful.lol turns everyday habits into numbers you usually never see — days you've been alive, years you'll spend asleep, what an hour of your time is actually worth. No accounts, no backend, no database. The maths r

1,570 visitors, then a dead domain: what a registry-level suspension actually looks like

oddlyuseful.lol turns everyday habits into numbers you usually never see — days you've been alive, years you'll spend asleep, what an hour of your time is actually worth. No accounts, no backend, no database. The maths runs in your browser.

For two days in September, 1,570 people used it. Then the domain stopped existing.

This is the part nobody writes about: not the launch, not the growth, but the week where a website you paid for quietly stops being on the internet and it takes you a fortnight to find out who did it.

The timeline

Date What happened
14–15 Sept 2026 Analytics shows 1,570 total and active users across the two days, average engagement 30 seconds
Shortly after The domain stops resolving. Status: serverHold
Sept 2026 Support calls and emails; GoDaddy's Office of the CEO (Tim) confirms the hold sits with the registry, not the registrar, and points to XYZ's unsuspend form
28 Sept, 18:09 Unsuspension request filed with XYZ (gen.xyz)
28 Sept, 23:09 XYZ Anti-Abuse confirms unsuspension — "closely monitored for the next 5 days"
5 Nov 2026 Spamhaus removal request processed — oddlyuseful.lol is off the Domain Blocklist

What the spike actually was

I don't know.

That's the honest answer and it's not going to change. 1,570 users over two days, an average engagement time of 30 seconds, and an event-count-per-active-user graph that looks like a seismograph — flat, flat, then a spike to 22, back to zero, up again. You can read almost anything into a graph like that.

Google Analytics dashboard, 14–15 September: 1,570 total and active users, 30-second average engagement, event count per user spiking between 0 and 22
The two days in question. I still can't tell you who these people were.

It might have been real people finding a calculator they liked. It might have been a scraper walking every URL it could find. It might have been one link shared somewhere and never mentioned to me. Seven weeks later I have exactly as much information as I had on the 16th.

I'm not going to call it an attack. I have no evidence of that, and the story is strange enough without me inventing a villain. What I can say is that a day later the domain was suspended, and the suspension notice used the language of abuse.

XYZ Anti-Abuse email: "This domain will be unsuspended and closely monitored for the next 5 days. If it continues to exhibit abusive behavior it may be resuspended immediately."
The only description of the problem I ever received.

The layer nobody explains to you

Here's the model I had wrong, and I suspect most people building their first project have it wrong too.

You buy a domain from a registrar. Mine is GoDaddy. The registrar is the shop: you pay them, they take your details, they're the ones with the support number you can call and the dashboard you log into.

But the actual authority over a top-level domain sits with the registry — the organisation that operates the extension itself. For .lol, that's XYZ, who run it from gen.xyz.

serverHold is a status that only the registry sets. It doesn't revoke your ownership. It doesn't delete anything. It removes the domain from DNS at the top of the tree, so nothing resolves — no website, no email, nothing. And because it's set above your registrar, there is genuinely no toggle in your registrar's dashboard that undoes it. GoDaddy couldn't have fixed this even if they'd wanted to. Their Office of the CEO said as much, and pointed me to XYZ's unsuspend form, which is the only route that exists.

That's worth sitting with. The company I was paying had no power over the switch. The company with the switch had never heard of me.

The catch-22

The unsuspend form has a text box: tell us why your domain should be unsuspended.

My answer was genuinely stupid in the way only real problems are. The domain was listed on Spamhaus — and only Spamhaus, everything else came back clean. Spamhaus has a delisting process, and that process wants you to verify you control the domain, by email, on the domain.

The domain couldn't receive email. Because it was suspended.

To prove the domain was mine, I needed email on the domain. To get email on the domain, I needed the domain back.

So I wrote that down as plainly as I could, attached the screenshots, and filed it. No lawyer, no formal complaint template — just the sequence of events and the one fact that made the normal route impossible.

The unsuspension ticket filed 28 September 2026 at 18:09, explaining the Spamhaus verification deadlock
The whole appeal. It is four sentences long.

What actually worked

Five hours. That's the gap between 18:09 and 23:09 on 28 September.

What I think mattered, in order:

  1. Going to the layer that owned the switch. Weeks of registrar support couldn't help because the problem wasn't there. As soon as the request reached XYZ's anti-abuse team, it was resolved in an evening.
  2. Naming the status exactly. serverHold, in the first line of the request. It tells whoever reads the ticket that you already know what happened, which saves everyone a round trip.
  3. Explaining the deadlock instead of asking for a favour. "I can't complete the normal delisting process, here's why" is a solvable problem. "Please unsuspend my site" is an argument.
  4. Attaching evidence. Five screenshots: the analytics, the blocklist, the registrar's reply, the ticket. Not decoration — proof that the story is coherent.

GoDaddy, Office of the CEO: the hold is at the registry level for .lol, operated by XYZ, and no setting in the GoDaddy dashboard lifts it
The single most useful paragraph I received all month.

What I'd do differently

  • Never make the project domain the only place I can receive mail. A separate mailbox I already control would have broken the catch-22 on day one.
  • Check Spamhaus myself before opening a support ticket. It would have put the real problem in the first message instead of the fourth.
  • Keep a plain-text log from the moment something breaks. Dates, times, what I tried, who said what. I reconstructed this post from screenshots; a ten-line log would have made it trivial.
  • Not assume the registrar is the authority. Fifteen minutes of reading about the registry layer would have saved a week.

The part that finally resolved

The site came back on 28 September. The Spamhaus listing did not.

For roughly five weeks after the unsuspension, oddlyuseful.lol stayed on the Domain Blocklist under "Low Reputation Domains". The calculators loaded fine for most people, but anything that consulted that list — mail filters, some security tools, some link scanners — still treated the domain as sketchy. And nobody emails you when you come off a blocklist. You just keep checking.

On 5 November the removal finally went through.

Spamhaus: Removal successful for oddlyuseful.lol
The page I had been refreshing for weeks. "Removal successful."

From a 1,570-visitor spike in mid-September to a clean reputation: about seven weeks. The domain is back, the listing is gone, and the only unfinished business is the one I still can't answer — who those visitors were.

For anyone shipping a side project

The registry is a real layer with real power over your project, and you will probably never think about it until it's the only thing that matters. Learn which registry runs your extension. Keep an inbox somewhere else. Assume that a status change can happen without warning, without explanation, and without anyone at your registrar being able to reverse it — and that the fix is a form, filed calmly, with evidence attached.

Also: .lol was my idea. Not the registry's.

Free life calculators, no signup: oddlyuseful.lol

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.