What Happens When One Person Runs 27 Domains
At some point domains stop being fun and start becoming infrastructure.
At some point domains stop being fun and start becoming infrastructure.
I don't remember exactly when I crossed the line. Somewhere between "I should grab that before someone else does" and "wait, do I own that one already?" the hobby became a liability.
How you end up with 27 domains
It always starts the same way. You have an idea. You check if the domain is available. It is. It's $10. You bought it before you finished your coffee. You haven't written a single line of code yet, but you own the domain, and that feels like progress.
Then you develop preferences. .com for anything serious. .dev for developer tools. .app for mobile-adjacent projects. .ai for anything with a model behind it -- at $140/year, which you tell yourself is fine because "AI is the future."
Before you know it, you're the proud owner of: chinesezodiaccompatibility.com, complicer.com, costmaps.com, isitlegalhere.com, tinimg.com, kindlm.com, kindlmann.com, breakit.dev, omnus.dev, terso.dev, 1tea.app, cullr.app, freshlens.app, istqb.app, aetera.app, aetera.ai, iseer.ai... and I'm still forgetting a few.
Some are active projects with users. Some are "I'll get to it next month" (for 14 consecutive months). Some are defensive registrations -- I bought kindlm.com and kindlmann.com because I couldn't decide which name was better, so I bought both and made zero progress on either. A few are genuinely forgotten. I discovered one during a billing audit that I had no memory of purchasing.
The problems nobody warns you about
Buying a domain takes 30 seconds. Maintaining 27 of them is a part-time job that nobody is doing.
DNS drift. I migrated my main projects from Cloudflare Workers to Vercel. Updated the DNS on the important sites. Forgot two others. They pointed at infrastructure that no longer existed for weeks. Nobody told me because those sites had approximately three users and none of them filed a bug report.
SSL failures. Cloudflare handles SSL automatically, which is great -- until it doesn't. One misconfigured domain, one edge case in the proxy settings, and suddenly a visitor sees "Your connection is not private." You find out when someone screenshots it and posts it on Twitter, which is always a great look.
Analytics fragmentation. Some domains have Cloudflare Analytics, some have Google Analytics, a couple have Plausible from that month I cared about privacy-first analytics, and several have nothing. Trying to understand total traffic across my portfolio is like doing a jigsaw puzzle where half the pieces are from a different box.
Zombie domains. Domains that are registered, pointing somewhere, maybe serving something -- but you haven't checked in months. Is it serving stale content from a deployment you forgot about? Is it costing you money in hosting you didn't realize was still running? Usually yes to both.
Renewal surprises. Auto-renew saves you from losing a domain but means costs happen silently. And they vary wildly. A .com is $10/year. A .ai is $140/year. That second .ai domain you registered on a whim? You just committed to $280/year for two domains that currently show a parking page. You discover this on your credit card statement and briefly consider whether iseer.ai is really going to be the billion-dollar company you imagined at 11pm on a Tuesday.
The registrar question. I have everything on Cloudflare Registrar, which charges at-cost pricing with zero markup. Arguably the only smart decision in this saga. But I talk to people who have domains scattered across Namecheap, GoDaddy, Porkbun, and the ghost of Google Domains. They can't even tell you how many domains they own without checking four dashboards.
What I actually do now
After the day I discovered two of my sites had been silently broken for weeks, I stopped treating domains as a collection and started treating them as a fleet.
Single registrar, single dashboard. Everything on Cloudflare Registrar. At-cost pricing, unified DNS management, one place to see all 27 domains. Obvious in retrospect but it took me embarrassingly long to consolidate.
Daily DNS verification. A cron job checks that every domain's DNS records match the expected configuration. Moved hosting? The next morning I get an alert if I forgot to update a record. This catches the "migrated but forgot 2 out of 12 domains" problem, which is exactly the kind of mistake I make consistently.
SSL expiry scanning. Another cron job checks certificate expiry across every domain. Anything within 30 days gets flagged. I haven't been surprised by an SSL failure since I set this up. The ROI on this single cron job has been enormous relative to its complexity, which is about 40 lines of code.
Domain cost tracking. All renewal costs tracked in a spending dashboard: $46/month amortized across 27 domains. Seeing it as a monthly burn rate instead of scattered annual charges completely changed how I think about "it's only $10" impulse purchases. Ten dollars times 27, plus the .ai premiums, is over $550/year on domain names alone.
Cloudflare analytics sync. Page views, visitors, and bandwidth per domain, pulled daily into one view. Turns out, 22 of my 27 domains get fewer than 100 visitors per month. Good to know before I spend a weekend redesigning one of them.
The takeaway
Domains are cheap to buy and expensive to forget about. At $10 a pop, each one feels like nothing. At 27, they're infrastructure -- with DNS to manage, SSL to monitor, analytics to track, and renewals to budget for. Code sits in a repo for free. Domains cost money every year whether you touch them or not. $46/month, forever, whether I ship anything or not.
I've started applying a simple rule: if a domain hasn't had a deploy in 6 months and gets zero traffic, it doesn't get renewed. This is harder than it sounds because every domain represents an idea, and letting one expire feels like admitting the idea is dead. But ideas are free. Domains are $10 to $140 per year, forever.
Or you could just buy one more. The .dev is only $12.