Notes on self-hosting newsletters

Since my subscriber list grew over two thousand people for WDRL I’m self-hosting my newsletter service instead of using a SaaS solution. But that also means a lot of work, too.

Things you need to take care of when self-hosting:

  • Choose the best newsletter software for the project
  • Choose a service provider for actually sending the emails (e.g. AWS SES or SendGrid)
  • Keep it up to date
  • Choose a good hosting for it
  • Keep the hosting up to date
  • Create some sort of workflow for publishing the newsletter
  • Find workarounds for the not supported features in your software that SaaS would have
  • Fix all the issues occuring by yourself
  • Set up link tracking manually
  • Set up email feedback (complaints, bounces) loops and ensure software handles the feedback
  • Create your own custom email template and ensure it works in all mail software (fun!)

Things where self-hosting is nice

  • Do what you want and customize everything
  • Combine multiple solutions
  • Much much cheaper than a SaaS
  • Privacy

Why I’m writing this now

I don’t track hours for my project but I can for sure say that I already spend hundreds of hours into updating servers, software, fixing issues and switching software. Of course this is often in times where you hadn’t planned for it and need a quick fix then. It can be exhausting.

As an example, last week I got notified by Amazon AWS that my complaint rate is too high and my account is now under review. This means if I don’t change anything for the better, I will be suspended. It means I need to immediately act on it and ensure that less complaints are happening. What’s the issue here now? Well, I use Mailcoach as software. It simply offers a form where people can subscribe. Unfortunately, it’s not integrating much security so spammers have success. They test emails on my service and subscribe with random email lists which results in many bounces and also a lot of complaints.

So now I had to consider what to do in order to get a quick result. I’m using Kirby CMS so I decided to quickly write my own controller there for subscribing people and integrate hCaptcha for it. It’s not very nice because it requires to solve a captcha for subscribing but it’s effective. I also implemented a CSRF token and a honeypot field into the form so I’m much safer now.

Sometimes I’m not sure if self-hosting things is worth the effort but then again I received a nice replay from one of my readers this week: »The nice thing about self-hosted on the other hand is that you can fix things yourself« which is so true.

Written on as Note