I built an email service, or, why the bar for software is going up
I recently put this site up and wanted the ability to let people subscribe to getting an email notification for when I write something new. This would be an email blast out to a very small list approximately one to four times a month. This was shockingly difficult to get set up:
And from that thread someone recommended Cloudflare, which happened to have hiccups at the time:
After both of those failed, I wasn’t going to pick some service that wanted $20/month for this one site, a price that feels egregious given I spend $5/month to host this site along with two others. I’m not going to pay $60/month to send out a few hundred emails a month.
Under normal circumstances I would have just given up and let people rely on me sharing on X and LI or RSS. But I figured this is something an agent could pretty easily handle for me. I told it to look for a hosting provider that I could do it on and then I gave it some high level instruction to build something in Rust with an API for sending and functionality to use webhooks to write back to the client site.
A little bit of iteration later and I had my own running email service for the price of $26/year that would work for all three of my personal sites. If you’re curious, that’s open source here as Mail Sloth, the mail sending service for the slow (like my writing velocity). I haven’t read the code and don’t care. I did direct the AI to use Turso for the embedded DB, not use some third-party service dependency, and gave the high level of the API I wanted, but that was it.
I ended up having to sign up for the hosting provider, but everything else was handled by the agent. I went from having nothing to having working code deployed and fully integrated into my sites in less time than it took me to navigate the AWS SES gauntlet. I’d say I spent more time on each of Cloudflare and SES than I did on this working solution.
This also has things like handling bounce backs, unsubscribe links, removing invalid email addresses, and logging to see what’s going on. I have this site send me a daily analytics summary via email so that I can get a confirmation that both the email service and this site are still running. If I don’t wake up to that email in my inbox, I’ll know something is wrong. Probably unnecessary as I could just as easily automate an agent to be my 24/7 on-call for them, but I’d rather not spend the tokens.
Now, it isn’t perfect. Apparently Hotmail, Outlook, iCloud and Charter email systems all have IP bans on ranges of IPs, which my mail host unfortunately falls into. Interestingly, Office 365 addresses work fine. If I cared more I would try to find a new host or petition those systems to whitelist my IP, but this is all pretty low stakes. So if you’ve subscribed to my list and you’re at one of those services, you won’t be getting email from me.
Yet I imagine that if I was building this for a company I care about, I wouldn’t sign up for an email service. Why bother when I can get something that is totally customizable and operates at a fraction of the price that won’t increase as my audience size increases.
At this point a service has to be easy to sign up for, easy to use, and priced fairly enough to get my business. And historically, that isn’t most software. Why do you think the margins have been so attractive? Because the price isn’t connected to the cost of the hardware, it was connected with the difficulty of creating the software. Well, that difficulty has dropped to near zero.
Packaged software has the added disadvantage that it mostly isn’t customizable, which is now the gold standard. For my company internal and personal software tooling, if I’m using it and spot a rough edge or think of a useful feature, I ask my agent and have it implemented and running within minutes. That kind of customizability is hard to compete with.
Of course, I’m a software developer so I’m an outlier. But I think that will change over time. Software is going bespoke. If you want to sell software, it’s going to take more than a feature here or there. But that’s a topic for another time…

