Home • About • Projects • Blog • Resources • Contact
Building the Ops Side of emilybuilds.ai
When I added a simple sign-up form to emilybuilds.ai, I thought the hard part was over. The idea was straightforward:
- Let people subscribe for occasional updates
- Send a friendly welcome email from
hello@emilysas.com
- Keep everything lightweight, privacy-friendly, and under my control
Easy, right? Not quite.
What went wrong
I already had my domain registered with Namecheap, and I’d set up a mailbox via their PrivateEmail service. It was cost-effective, worked well with my domain, and gave me a professional @emilysas.com
address.
It seemed like a sensible way to send branded updates - without relying on Gmail or paying for a heavier solution.
When I tried wiring up email sending via Zapier + SMTP, things quickly broke down:
- TLS vs SSL: Zapier defaults to TLS on port 587, but PrivateEmail prefers SSL on port 465. I tried both combinations. No luck.
- Authentication errors: I repeatedly got
authentication failed: read ECONNRESET
, despite using the correct credentials and ports. - No 2FA or App Passwords: PrivateEmail doesn’t support app-specific passwords or modern two-factor auth flows — which Zapier often expects.
- Zero helpful logs: Error messages were vague, and the troubleshooting process felt like chasing shadows across forums, dashboards, and settings panels.
I checked recovery keys, control panels, and mailbox permissions in both Namecheap and PrivateEmail. Still no dice.
The fallback
After several hours of experimenting and getting nowhere, I decided to email support, pause the automation and keep the form simple for now:
✅ The Tally form collects email + optional name
✅ Zapier sends this data to Airtable for safekeeping
❌ The welcome email is temporarily disabled
This avoids broken functionality and lets me revisit email delivery later.
What I learned (the hard way)
- “No-code” still involves setup ops. Not unsimilar to coding tbh, it seems much of the time sink is caused by sorting out weird niggly config issues.
- Tool choice matters. It might be better to test a small, reliable stack and stick with it, rather than assuming new tools will automatically work well together. This is a tricky one because part of what I’m wanting to do is experiment with what’s out there, but I may do better to pick a few tools that play nicely together and stick with them, rather than constantly swapping things in and hoping they’ll just click.
What’s next
I’ll revisit this email flow when I have a more robust comms strategy. In the meantime, if you want to follow along as I experiment, build, and (occasionally) break things — you can still sign up here.
Update – 9 July 2025
After all the back-and-forth, I finally got the email workflow up and running. The key fixes were:
- Using my regular password, not the application-specific one (thanks to Namecheap support for clarifying this).
- Switching from using a hardcoded record ID in Airtable to finding the signup by email address, then updating that record — much more robust.
The welcome email now sends reliably, and the Airtable record gets updated to show it’s been sent. A small thing, but it feels like a proper mini-ops victory.