How I set up my own email domain without paying for Google Workspace
emot | Random Stories
SubscribeSign in
How I set up my own email domain without paying for Google Workspace<br>This is a simple walkthrough of how I set up a custom email address on my own domain while continuing to use Gmail, what worked, what didn’t, and where the “free” part stops being free.<br>João Tomé<br>Jun 24, 2026
Share
(writing this mostly for my brother, Pedro. If you’re trying to do the same thing, you can probably copy most of this post into ChatGPT, Claude or another LLM and follow the steps from there.)<br>It’s not a big deal, but recently I had some time in my hands (it’s actually Cloudflare related), and wanted to give a more professional look to the email I share externally. So, I wanted to put together, with no costs, a simple email address: jt@joaotome.com.<br>I didn’t want to pay for Google Workspace. I didn’t want another inbox to check. And I didn’t want to give up Gmail, which is where I already spend most of my email time (next to Outlook — yes, I have a very old Hotmail account, from 1998).<br>After some trial and error, I ended up with a setup that lets me receive email at my own domain (joaotome.com), keep Gmail as my main inbox, and send email from Gmail using my custom address.
The result feels almost invisible. I still use Gmail exactly as before. The only difference is that the email address belongs to me.<br>One thing that confused me when researching this setup is that many articles still imply it is entirely free.<br>That’s not quite true anymore (since June 9).<br>As of June 2026, Cloudflare Email Routing is available on the Workers Free plan, but Cloudflare Email Sending currently requires the Workers Paid plan, which costs $5/month and includes 3,000 outbound emails per month.<br>So the honest version is simple: receiving email at your custom domain can be free. Sending email through Cloudflare’s Email Sending service requires the $5/month paid plan.<br>That said, you may not need Email Sending at all.<br>If all you want is a custom address that forwards to Gmail, Email Routing is enough and remains free. You can receive mail at you@yourdomain.com and continue replying from your normal Gmail address. For many people, that’s perfectly fine.<br>I chose to enable Email Sending because I wanted every email I send from Gmail to come from jt@joaotome.com. That was worth the extra $5 per month to me.<br>My setup is fairly simple. I use jt@joaotome.com as the public address, seremot@gmail.com as the actual inbox, Cloudflare Email Routing for incoming mail, Cloudflare Email Sending for outgoing mail, and Gmail as the interface where everything happens.<br>The first requirement is that your domain uses Cloudflare DNS. Once that’s in place (this is the sort of thing ChatGPT, Claude or Gemini can walk you through, and you’ll also need a free Cloudflare account), enabling Email Routing is straightforward.<br>Cloudflare adds the required MX records and routing configuration, then you choose where incoming mail should go. In my case, every message sent to jt@joaotome.com is forwarded to Gmail.<br>One thing worth checking before you start is whether your domain still has old email records from another provider. I had leftover Google Workspace MX records and Cloudflare refused to enable routing until I removed them. The error message was accurate, but my LLM understood it and guided me through the fix.<br>The solution was simply to go to the DNS section in Cloudflare and delete the old MX records that were still pointing to Google’s mail servers. A minute later, Email Routing worked.<br>Once Email Routing is working, you can create as many forwarding addresses as you like. For most people, a handful is enough: your main address, perhaps a hello@ address, and maybe one or two aliases. It’s easy to create dozens of them, but I suspect most of us won’t use them.<br>The outbound side is where things become slightly more complicated.<br>To send email as your custom domain from Gmail, Cloudflare needs to onboard the domain for Email Sending and create a few additional DNS records. This is where I hit my second problem. Cloudflare reported incompatible records under _domainkey, which turned out to be old DNS delegation records left behind by a previous provider. Once I removed them, onboarding completed successfully.
Cloudflare uses an API token as the SMTP password. After creating a token with the Email Sending: Edit permission, I added my custom address inside Gmail under “Send mail as” and configured the SMTP settings using Cloudflare’s server.<br>The important details are:<br>SMTP server: smtp.mx.cloudflare.net
Port: 465
Username: api_token
Password: your Cloudflare API token
SSL enabled
One thing that caught me out is that Cloudflare expects SSL on port 465. STARTTLS on port 587 does not work.<br>After Gmail verifies ownership of the address (a few minutes), everything is basically done. The verification email arrives through Email Routing, you click the link, and Gmail can...