NOT MAGICAL a
I was domainless a few months ago. Being domainless comes with some misunderstandings.
I used to think a custom email address was an automatic perk of owning a domain, since most cool programmers I noticed had an email that seemed to spawn from their website's URL (
brad [at] bradwoods.io,
joel [at] joelonsoftware.com,
jozef [at] legeny.fr, etc). And once I set up a domain / personal website, it was almost magical, like - poof - now I own this web address on the internet, bought with real money, and it should come with an email address for the internet too.
But no free lunch. Well, it can be mostly free, but it still takes work. Here's the steps I took from being domainless to having a custom email address, based around some simple truths that I wish were spelled out to beginners like me. Prepare yourself for lots of records and button finding:
- Buy a domain name from a registrar. I used Google Domains because I knew they would dumb things down to a familiar level. 1
- That registrar now manages your domain records, which are just files on their servers. There will be buttons somewhere on their web interface for modifying these records. You must find these buttons in order to move on.
- * Optional website step: if you want a website at your domain, you need a hosting service. I chose Netlify because they have free hosting and it seemed simple. Now you have two things managed separately, by separate services, on separate servers: domain registration and website content. To connect them, you'll need something like a CNAME domain record. Your hosting service will have an instruction page about this record. You must find these instructions. The record might look something like
@ - apex-loadbalancer.netlify.com. You must use the buttons on your registrar's web interface and fill in the details from these instructions. 2
- Choose an email hosting service based on their specs for custom domains. For context: emails are sent, received, and stored by somebody's server. Generally, people will charge you money for using their servers. You might not have noticed until now because there's a lot of free email options (ie. Gmail). But people get stingy when you want to bring a custom domain. You should keep this in mind as you choose an email hosting service. You probably wish you were told this back when a custom domain seemed so magical. I chose Zoho Mail because they offered the most under their free custom domain email plan.
- To connect your domain name servers to your email hosting servers, you need MX records. Your email hosting service will have an instruction page about these records. You're looking for records like
@ - mx.zoho.com - 10,
@ - mx2.zoho.com - 20,
@ - mx3.zoho.com - 50. You'll probably need other records too, like a TXT record to prove you can add more records. You must use the buttons back at your registrar's web interface, or wherever you let your domain records be managed, in order to create these records.
CLOSING THOUGHTS a
That's pretty much it! Not too bad when you realize it's all about choosing services and connecting them with domain records.
...That's the optimistic view. I actually think the experience paralleled many painful parts of software development:
- Digging for specs - Landing page fatigue was real. All I really wanted to know was how much service A charged compared to service B, and with what storage limits, and to what extent I could control my data. I realized all the other content and web design just got in the way.
- Paralysis by analysis - you can spend weeks just mulling over recommendations from sources like HackerNews, which is great for finding quality and authentic and objective info, and great for learning, but not great if you ever need to get out of the rabbit hole.
I got out after researching ~15 of the most popular email hosting services that showed up in recommendation threads. At some point you just have to pull the trigger and hope you commit to the least flawed or limiting service, and that's tough as a beginner who's heard how other people have been burned and doesn't want his own tender self to get burned. Maybe I research too much.
- Layers of knowledge and abstraction - not too bad like it would be if I was developing software, but still present.
Big email providers like Gmail make it seem like email is universal and free all the time; you never have to worry about domains or records or servers. Then at some point when you own a domain, you learn about DNS and how records point servers to other servers. You'll need to know about a few main record types - CNAME is for mapping domain to content, MX is for email, TXT is for arbitrary information.
That's about where I stopped, but that's just the beginning - there's other related topics like DNS resolution, spam filtering, protocols like POP and IMAP and SMTP, HTTPS and SSL (which thankfully was one-click for my site), and so on. Thankfully I shouldn't have to care since my services abstract those away. Maybe POP/IMAP for email forwarding, if I feel like it. I envy the older programmers who grew up with the technology. It's as if they started at technology bedrock and naturally floated along time to the surface. I was born at the surface, trying to balance between drilling down for understanding and still getting work done at the top levels of abstraction. It's tough.
- Managing tradeoffs - some give-and-take between convenience, flexibility, power, and money.
For example: basic Gmail is convenient and takes little time to understand and use, but having the flexibility of a custom domain takes time and money to set up.
Or another: you could replace all these services like Netlify and Zoho by self hosting on your servers, but then you'd have to manage it all and fix bugs and think about security and bear whatever other headaches they bring. Now I view most tech services as 'headache bearing as a service', HBaaS, and I'm beginning to realize how much I'll give for them to take my headaches.
1There's a bunch of tips to learn about choosing domain names and registrars. For example: you might try a clever spin on your nickname jwong, like
jw.ong, but it would not be feasible because
.ong is for special non-profits, and you would have to prove your non-profit status to someone, somehow.
jwo.ng may not be great either because
.ng is for Nigeria, and you would be subject to the policies of a smaller registrar based in the area, which can apparently include revoking your domain for no good reason, at least according to other people's experience, and so you should probably stick with more common TLDs and registrars.
And so you resort to something less clever, like
jwong.com, but that would not work because there you find a quaint little website, and you look up the WHOIS info and see wow it's from 1997 and there's some contact information, but that sounds like a dead-end because surely many other jwongs have tried and failed in these 26 years, and you start to feel a little guilty for coveting this domain because the website appears to be a family memorial page of sorts, although something has been lost in translation, and clearly somebody cares enough to keep renewing the domain, and you're familiar with the taste of defeat at this point, and so you accept that
jwong.com is untouchable.
But that's a personal journey of sorts, depending on your domain name. I found registering a domain name to be the easy part. The rest was annoying and confusing and harder to understand.
2** Doubly optional website step: your website host might want to manage your domain records in place of your registrar. They might convince you by using words that sound nice, like deploys and support and CDN. You might be swayed, especially if you weren't impressed by the button-finding experience back at your registrar. If you choose to do this, your host will give you new name servers (NS records) to plug back in to your registrar, like
dns2.p01.nsone.net. This means finding more buttons. The buttons you found back at the registrar will not be useful afterwards. Your hosting service will have their own web interface with buttons for managing your domain records from now on. You must find this interface and its buttons, hidden among all the hosting buttons already crowding in, to move on.