3 posts
-
A subscribe button does not need a Worker
The newsletter moved off Cloudflare Workers and onto the mail server in a day: one Rust service, a Postgres with four tables, addresses sealed at rest, and a record of which issue went to whom. Why a mail store as a database was the right workaround in February and the wrong one now, what the move cut from the attack surface, and what the research on LLM-written code says about doing this with a coding agent without the complexity creeping back.
-
One-click unsubscribe needs a URL per reader and a DKIM tag
Three months of running a self-hosted newsletter: double opt-in with no database, why one-click unsubscribe forced me to stop using my mail server's fan-out, and an RFC 8058 DKIM requirement that ends in an anticlimax.
-
Self-hosting email is not that hard anymore
This blog's newsletter ran on a Rust Cloudflare Worker and my own Stalwart mail server, with no database and nothing paid for, until September 2026, when it moved onto the mail server itself. What the system looked like after a year of fixes, the DNS records that keep it out of the junk folder, what Hacker News gets wrong about running your own mail, and why a newsletter is a pipeline in the knowledge-diffusion sense.