← Journal8 min read

A Pro Website and Custom Email for the Price of a Domain

For a long time I assumed that having a "real" website — my own domain, my own email at that domain, none of the free-service URL suffixes hanging off my name like a price tag — meant paying for three things. A domain, a hosting plan, and a mailbox. I'd look at the hosting company's checkout page, see the numbers add up to something north of a hundred bucks a year, sigh, and close the tab.

I did that for years. Every time I circled back to the idea of building a personal site, the bundle stared at me and I flinched.

It turns out I was wrong about two of the three. And the thing that finally fixed it wasn't a tutorial or a YouTube video. It was a long, meandering conversation with Claude (Anthropic's AI assistant) where I kept asking questions until the whole mental model snapped into place.

The expense trap nobody questions

Here's the pitch every hosting company runs, more or less in this order:

  1. Pick your domain — $15/year, fine.
  2. Pick your hosting plan — $5–$15/month, "to actually put your site on the internet."
  3. Add email — $6–$9/month per mailbox, "so you can have you@yourdomain.com."

By the time you're through the funnel you're staring at $150–$250 a year for a small personal site that's probably going to be three pages and a blog. Nobody questions this because the bundle looks like a complete product. You're buying "a website," and a website obviously needs hosting and email, right?

Except it doesn't. Not that one, not anymore.

Where I got stuck, and what unstuck me

I'm a musician and a solo developer. I'm comfortable inside a code editor, but networking infrastructure — DNS, nameservers, MX records, all that alphabet soup — has always felt like a separate planet. So whenever I looked at self-hosting, I'd usually hit the pricing page and give up.

At some point I sat down with Claude and started asking basic questions.

Claude didn't hand me a product recommendation. It walked me through the model. And once the model clicked, the pricing model I'd thought was standard for years collapsed into something close to free.

Two moments did most of the work.

The first: you don't need to pay for web hosting at all for a static site. Vercel, Netlify, Cloudflare Pages, GitHub Pages — any one of them will host a personal site for free, forever, with automatic SSL and a global CDN thrown in. This was true while I was still treating hosting as a monthly subscription. I just hadn't noticed the world had changed under me.

The second: custom email is probably already bundled with your domain. Most reputable registrars include free email forwarding with every registration — sometimes three addresses, sometimes unlimited. Pair that with Gmail's "Send mail as" feature (also free) and you get full receive-and-send functionality at you@yourdomain.com without adding a single line item to your bill.

I almost went down a third-party rabbit hole here. I was halfway through setting up Cloudflare Email Routing — which is also free and genuinely great — before I thought to check whether my registrar already handled forwarding. It did. Lesson logged: check what's in your stack before you add to it.

The three-jobs mental model

Here's the core thing I wish someone had told me years ago. Running a website involves three separate jobs that hosting companies bundle together because it's more profitable that way:

  1. Registrar — the company where you bought the domain. This is the deed of ownership. They prove to the rest of the internet that yourdomain.com belongs to you.
  2. DNS host — the phonebook. When someone types your domain, their computer asks DNS "which IP address is this?" and DNS answers. Your registrar almost always offers this for free.
  3. Web host — the actual server where your site's files live. This is what you've been paying $10/month for, and the one you probably don't need to pay for at all anymore.

Email is a fourth, independent layer. It has nothing to do with where your website lives. You can host your site on Vercel and have your email forwarded by your registrar and your browser has no idea any of it is happening. The domain is the hub; everything else plugs into it independently.

Once you see the three jobs as three jobs, you realize you can pick the best (or cheapest) provider for each, and they don't have to know about each other.

A very short DNS primer, so the rest of this makes sense

DNS is the phonebook of the internet. When you type example.com, your computer asks DNS "what's the IP address for this?" and DNS gives it back. That's the whole concept.

The records you'll actually touch are few:

  • A — points a domain at an IPv4 address (where the website lives)
  • CNAME — points a subdomain at another domain (e.g. www.example.comexample.com)
  • MX — where email for this domain should be delivered
  • TXT — arbitrary text, mostly used for email authentication (SPF, DKIM) and verification

You don't need to memorize these. You just need to know they exist so when a service says "add a CNAME record pointing www to cname.vercel-dns.com," you don't panic.

The actual stack

Here's what I ended up running, and what each layer costs me per year:

| Layer | Provider | Cost | |---|---|---| | Domain | Any reputable registrar | ~$15/year | | DNS | Bundled with the registrar | $0 | | Web hosting | Free static host (Vercel, Netlify, Cloudflare Pages, GitHub Pages) | $0 | | SSL certificate | Auto-provisioned by the host | $0 | | Source control + CI | GitHub | $0 | | Email receiving | Registrar's free forwarding (or Cloudflare Email Routing) | $0 | | Email sending from custom address | Gmail "Send mail as" | $0 | | Total | | ~$15/year |

That's it. One line item. Everything else is a free tier that isn't going to disappear, because it's in the core interest of these companies to keep you on the ramp toward their paid products. (The trick is noticing you never actually need to step onto the ramp.)

The YAGNI principle, applied to infrastructure

There's a classic programming adage: YAGNI — You Aren't Gonna Need It. Don't build features you don't have a concrete use case for.

It applies just as hard to infrastructure. Every service you add to your stack is a password, a billing relationship, a thing that can break, a thing you have to migrate off of later. For a personal site with a contact form and a blog, you do not need a catch-all mailbox, a CMS, a CDN you pay for, a staging environment, or a monitoring service. You need a domain and a place to put your files. That's the floor, and for a surprising number of people the floor is also the ceiling.

When you actually should upgrade

I don't want to pretend the free stack works forever. There are real moments where paying makes sense:

  • You want a catch-all addressanything@yourdomain.com all routing to you. Most free forwarding caps at a handful of specific aliases.
  • You're running a business from the address — a paid mailbox service gives you calendar, shared inboxes, proper deliverability tooling, and the peace of mind that your mail isn't silently being bounced by a forwarding chain.
  • You're hitting the free tier's limits — a personal blog won't. A viral product launch might.
  • You need features the free stack doesn't have — server-side functions at scale, guaranteed uptime SLAs, compliance requirements.

Until one of those is actually true for you, though, paying for them is paying for complexity you haven't earned yet.

Closing thought

The part of this I keep coming back to isn't the money. It's that for years I had a vague, slightly embarrassed blind spot around infrastructure — a whole category of knowledge I'd decided was too complex for me. I even owned a domain name but didn't have a website live on it because I didn't know about this stack.

What broke that pattern wasn't a course or a doc. It was having AI to guide me that finally helped to understand this. Claude didn't teach me DNS, exactly. It gave me permission to learn it at my own speed, and guided me more effectively than Google would have in the past, wading through seas of blogs and hosting company websites. Claude even flagged that my domain registrar offered 3 free email forwarding accounts after we initially went down a Cloudflare path.

If you've been circling one of these topics for years — the one you keep meaning to figure out and never do — that might be the move. Not another tutorial. A conversation. Keep asking "but why" until the model in your head matches the model in the world. You'll be surprised how often the answer at the bottom of the stack is "huh, that's actually free."


Have questions or want to compare stacks? Drop me a line via the contact page.

Blog written by Richard in collaboration with Claude Opus 4.7 (1M context).