TL;DR: I used Google Workspace for years to get custom domain email for my family. Google kept restricting what personal users could do and raising prices. I moved to Cloudflare Email Routing which forwards custom domain emails to free Gmail accounts, then configured Gmail to send as the custom address. Free, no monthly cost, full Gmail experience.
The Google Workspace trap
Back in the day, Google Apps (later G Suite, now Google Workspace) was the obvious choice for custom domain email. You got Gmail’s interface, great spam filtering, and your own @yourdomain.com address. For a long time it was free for small users. I set up several Workspace accounts for my family: @family.example, @partner.example, a couple of @kid1.example and @kid2.example addresses for when they were old enough.
Each domain was its own separate Workspace account. Not ideal, but the per-domain setup was the simplest way to give each family member their own isolated email.
Then things changed
Over the years, Google progressively restricted what personal/family users could do with Workspace:
- Free tier removed (2022): Google killed the legacy free G Suite tier, forcing everyone onto paid plans. What was free now cost $6-7/user/month minimum
- Price increases: The per-user pricing kept creeping up. For a family with multiple domains and users, it added up fast
- YouTube brand accounts: Workspace accounts can’t create or own YouTube brand channels the same way consumer Google accounts can
- Google One storage: No access to Google One storage plans or family sharing. You’re locked into Workspace storage tiers
- Family sharing limitations: Google Play family sharing, family groups, and shared libraries don’t work well (or at all) across Workspace accounts
- Google Assistant/Home: Various smart home features tied to consumer accounts don’t fully work with Workspace
- No Google Profile: Consumer features like public Google profiles and some social features are restricted
- Admin overhead: You’re running an IT admin console for your family. Password resets, 2FA management, compliance warnings. It’s a business product being used for personal email
- Feature lag: Consumer Gmail often gets new features months before Workspace rolls them out
The core issue: Google Workspace is a business product, and Google keeps optimising it for businesses. Personal and family use-cases are an afterthought at best and actively restricted at worst.
Options I considered
Self-hosted email
Running your own mail server (Mailu, Mail-in-a-Box, etc.) on a VPS. Full control, no vendor lock-in.
I ruled this out almost immediately. Email deliverability is brutal. Getting your IP off blocklists, maintaining SPF/DKIM/DMARC, keeping up with spam filtering, monitoring for abuse. It’s a full-time ops job for something that just needs to work. Life’s too short.
iCloud+ Custom Domains
Apple lets you use custom domains with iCloud Mail if you have an iCloud+ subscription (which I already pay for). Sounds appealing.
The limitations killed it for me:
- Maximum 3 custom domains
- Maximum 3 email addresses per domain
- Everyone using those addresses needs to be in your iCloud family group
- The web interface is fine but not Gmail
- Search is significantly worse than Gmail
- No label/filter system anywhere near as powerful as Gmail’s
Fastmail / Proton Mail / Migadu
These are solid dedicated email providers that support custom domains. Fastmail especially has a good reputation.
But they all cost money per user or per domain, the interfaces aren’t Gmail (which my family has used for years and knows inside out), and migration would mean changing everyone’s workflow. Lots of friction for a problem that has a simpler solution.
The answer: Cloudflare Email Routing + Gmail
Then I discovered Cloudflare Email Routing. If your domain’s DNS is already on Cloudflare (mine all were), you can route incoming email to any destination address for free. Combine that with Gmail’s “Send mail as” feature and you get the full custom domain email experience without paying anyone.
How it works
The setup has two parts: receiving email and sending email.
Receiving: Cloudflare Email Routing
Cloudflare acts as the mail server for your domain. When someone emails you@yourdomain.com, Cloudflare receives it and forwards it to whatever Gmail address you configure. It’s like a mail forwarding service built into your DNS provider.
In Cloudflare’s dashboard, you set up routing rules: you@yourdomain.com → yourpersonalgmail@gmail.com. You can have catch-all rules, multiple addresses routing to different Gmails, whatever you need.
Behind the scenes, Cloudflare sets up MX records pointing to their mail routing infrastructure. They handle the email reception and forward it on.
Sending: Gmail “Send mail as”
This is the bit that makes it seamless. In Gmail settings, you can add a “Send mail as” address. You configure your custom domain address, verify it, and then when composing email you can choose to send from you@yourdomain.com instead of your Gmail address.
Recipients see your custom domain. Replies come back to your custom domain. Cloudflare forwards them to your Gmail. The loop is complete.
For the SMTP settings in Gmail’s “Send mail as” configuration, you use Gmail’s own SMTP servers (smtp.gmail.com) with an app password. Gmail handles the actual sending, and as long as your SPF record authorises Gmail’s servers to send on behalf of your domain, everything passes authentication.
DNS records you need
For this to work properly, you need three DNS records on your domain:
MX records pointing to Cloudflare’s email routing servers (Cloudflare adds these automatically when you enable email routing):
MX @ route1.mx.cloudflare.net (priority 84)
MX @ route2.mx.cloudflare.net (priority 32)
MX @ route3.mx.cloudflare.net (priority 2)
SPF record authorising both Cloudflare (for forwarding) and Google (for sending):
TXT @ v=spf1 include:_spf.google.com include:_spf.mx.cloudflare.net ~all
DMARC record so receiving servers know your domain has email authentication configured:
TXT _dmarc v=DMARC1; p=none; rua=mailto:your-reporting@dmarc-reports.cloudflare.net
Cloudflare’s DMARC Management app generates the reporting address for you and gives you a nice dashboard showing who’s sending email as your domain.
Why this works well
- Free: Cloudflare Email Routing is free. Gmail is free. No per-user costs
- Gmail interface: Everyone in the family keeps using Gmail exactly as before. Same filters, same labels, same search, same mobile app
- Consumer Google accounts: Everyone has a regular
@gmail.comaccount with full access to YouTube, Google One, family sharing, Google Assistant, all of it - Custom domain identity: Externally, all email appears to come from your custom domain
- Spam filtering: Gmail’s spam filtering still applies to forwarded messages
- Reliability: Cloudflare and Gmail are both extremely reliable infrastructure. No self-hosted server to worry about
- Multiple domains: Easy to add as many domains as you want, all routing to the same or different Gmail accounts
- Cloudflare dashboard: You get visibility into email routing, DMARC reports, and DNS health all in one place
Caveats and things to know
It’s not perfect. Some things to be aware of:
SPF alignment on forwarded mail: When Cloudflare forwards email to Gmail, the envelope sender can sometimes cause SPF alignment issues. Cloudflare handles this with SRS (Sender Rewriting Scheme), but occasionally a very strict receiving server might flag forwarded mail. In practice, I’ve not seen this be a problem with Gmail as the destination.
App passwords: To configure “Send mail as” in Gmail, you need to generate an app password for your Google account (this requires 2FA to be enabled). It’s a one-time setup but worth noting.
No DKIM for custom domain sending: When Gmail sends on behalf of your custom domain via SMTP, it signs with Google’s DKIM, not a custom DKIM key for your domain. This means DKIM alignment won’t match your domain. In practice this is fine because SPF passes (Gmail’s servers are in your SPF record), and DMARC only needs one of SPF or DKIM to align. But if you ever move to p=strict on DMARC, you’d need to set up DKIM separately.
Google could change things: Gmail’s “Send mail as” feature with external SMTP has existed for years, but it’s not guaranteed forever. Google could restrict it or require Workspace for it. For now it works great.
Storage is shared: All forwarded email counts against your Gmail storage. If you’re on the free 15GB tier and get a lot of email with large attachments, you’ll eventually need Google One storage (though that’s cheap and useful for other things anyway).
Catch-all can attract spam: If you enable a catch-all rule in Cloudflare (forward everything@yourdomain to your Gmail), you’ll get spam to random addresses. I’d recommend specific address routing rather than catch-all, or use plus addressing for signups.
The migration
Moving from Google Workspace to this setup is straightforward:
- Export your email from Workspace (Google Takeout or IMAP sync to the new Gmail)
- Set up a free Gmail account (or use an existing one)
- Enable Cloudflare Email Routing on your domain
- Update MX records to point to Cloudflare (instead of Google Workspace)
- Add SPF and DMARC records
- Configure “Send mail as” in Gmail
- Test sending and receiving
- Cancel Workspace once you’re confident everything works
I left the Workspace accounts running in parallel for a month before fully cutting over. That way I could catch any edge cases.
Was it worth it?
Absolutely. Across multiple family domains and users, I was paying a meaningful amount per month for something that’s now free. Everyone still uses Gmail exactly as before. The kids have proper consumer Google accounts that work with everything. I don’t have an admin console to manage. And the email just works.
If you’re using Google Workspace purely for custom domain email and not for the business collaboration features, this is worth looking at.