a devlog on machines & languages

27 Newsletter

This devlog has been online for more than a week now and a friend asked why there is no provision to subscribe to it by email. The request caught me by surprise because I distinctly remember the 2000s when RSS/Atom was the way to keep track of everyone you read and signing up for anything at all was a big no-no. My guess is that Substack has changed how people approach this subject.

Well, so I decided to build that feature.

I originally wanted to host the mail server myself on this Hetzner VPS, but finally decided it was too much effort. The application I have built is called Mēdhā Mailer. I built it for my own needs. The Mailer supports multiple lists per site, campaigns, double opt-in, the various List-Unsubscribe headers,1 and prefetch sensitive verify and unsubscribe workflows.2 The only supported backend is Amazon SES as that is what I plan to use.

Subscriptions are per list, so unsubscribing from one leaves the others untouched, and an address that unsubscribes is deleted from that list automatically. Bounces and complaints received via Amazon SNS suppress the address for the whole site.

The Mailer does not support tracking nonsense of any kind. I hate it and I expect you do as well. I don't deny there is a place for it, but a personal devlog is not it.

The static site is blissfully unaware of all the magic. Caddy hands over control of certain paths to the Mailer which then renders the necessary detail using a template.

I find one-email-per-post to be spammy. A weekly cadence might be best for everyone. So the devlog uses a single list, weekly-digest, which sends the digest out every Saturday morning, India time. No email if there are no posts during the previous week.

The Subscribe page will be updated when SES gives me production access. has been updated.

  1. For RFC 8058 compliance. ↩
  2. Email security scanners and prefetching clients GET every link. A verify or unsubscribe link that acts on GET can be triggered by the scanner/client before the reader ever sees the email. So I use a landing page with a POST confirmation. ↩