When someone says newsletter my mind immediately goes to Mailchimp, because it’s what I’ve been using forever. One of my projects recently underwent very quick growth, so when I had to set up a newsletter for it I obviously thought about Mailchimp first. It’s always served me good: it’s clean, fast, and it gets the job done every time. Now, previous to this project I had never have to manage a newsletter this big. I always had amounts of subscribers in the hundreds or low thousands, always well within the range of the free tier, so this idea of having to pay for marketing software came as a surprise to me. Especially when I saw what the total amounted to: thousands of dollars a month.
Mailchimp is free, sure, but only up to a point. The free tier nowadays covers only 500 contacts. It used to be 5k contacts, which was more than enough for me and many – but they lowered it 10x, and probably lots of people that were happy with the free tier had to start paying to keep their newsletters alive.
You look at things a whole lot differently when instead of 500 people you now need to blast emails to hundreds of thousands of subscribers – and hopefully many more eventually. Things don’t just become a bit more expensive; things 10x or 100x their cost. To give you an idea, this is what happens the moment you exceed 100k email contacts in Mailchimp:
After 100k or so contacts, all Mailchimp plans become greyed out with the message “Contact limit exceeded”, leaving you with their most expensive plan as only option, at over $1k a month. I don’t know about you, but paying more for a newsletter tool than what I pay for rent feels a bit much.
Why is Mailchimp so expensive?
Well, turns out email marketing is a really difficult problem. And Mailchimp does a damn good job at solving it.
There are a lot of problems Mailchimp is dealing with for you. A lot of problems you don’t notice, because they’re so good at making everything work like magic. Here are just some of those problems:
- Offer a simple way for users to unsubscribe from your newsletter: people become really angry (understandably so) if you send emails without an “Unsubscribe” button. They report your emails as spam, email clients like Gmail pick up the complaints and you might become absolutely invisible to everyone. You need a website where users can self-manage their subscription status, with a unique and private URL per user.
- Handle bounced emails: sending emails to addresses that bounce your messages hurts your reputation as a sender and can get you banned from sending emails altogether. Your emails bounce when an address is not able to receive messages. This may happen because the destination address doesn’t exist (as in: the user entered a fake email, or mistyped their email); or when the destination server rejects some or all email. This is called a hard bounce, and your email sending service gets notified of those. The worst case of this is when an user *does* receive your email, but they tag it as spam. This raises a complaint, which is then forwarded to your email sending server, which really, really hurts your reputation as a sender. Too many complaints, and any decent email sending server will ban your account. It’s only understandable – they do this to prevent spam and abuse. The conclusion is you need a system in place to detect bounces & complaints, and remove bad addresses from your mailing list so you don’t hit them again in the future.
- Email deliverability and technical details: you can’t just send emails from your own server, because other email servers won’t trust yours, and will label your messages as spam. You need to send emails from a well-known, reputable email server – or your messages will simply not arrive. People will complain they never got your message, or they’ll be delivered straight to the spam folder. A lot of things have to be in place for your emails to be correctly sent and delivered. Your DNS server needs to be set up right, your DKIM signature has to be valid, same goes for your SPF and DMARC records, your
MAIL FROM
has to be configured, your email server’s IP can’t be listed in any of the dozens of email blacklists out there, your email server has to have a good reputation, your emails need to have appropriate headers, ideally aList-Unsubscribe
header, etc. It’s a lot of little things and I going over all of them in detail escapes the scope of this blogpost, but the absolute best tool I’ve found to test all this is mail-tester.com, which generates reports like the one below and gives you very itemized, detailed feedback on what you need to do to get your email deliverability just right:
- Hosting images and assets: your emails will sometimes include images, and those images need to be stored somewhere. When you attach something in Gmail, like a picture, you’re uploading it to Google’s servers and what gets attached to the email is a link to the picture hosted at Google’s servers, not the picture itself. When you’re sending email newsletters, you need to think about where are you going to upload your email attachments. Mailchimp also manages that for you.
- Managing multiple lists: one single user can be subscribed to more than one mailing list. You might have a list for important platform notifications, another one for transactional emails, and another one for marketing purposes, and you want to allow users to belong to them and manage them independently. Some of them might be opt-in, increasing complexity.
- Emails don’t support standard HTML or CSS. Emails, like websites, use HTML and CSS code to display their content. But if you try to use in emails the same code you use for websites, it won’t work. I learned this the hard way. Emails only support a tiny, specific subset of HTML/CSS, and if you use a visual editor it needs to account for it or your messages will be broken. In short: you should never write the HTML / CSS for your own emails, because it likely won’t work even if you’re good at HTML / CSS. A good trick I learned a few years ago is that some companies, like Mailgun, have published their own HTML email templates you can use and adapt to your own needs. They work wonderfully every single time.
- Tracking marketing metrics: open rates and click-through rates are important metrics for a newsletter, especially if you want to monetize it – your metrics are essentially what you advertise and charge for to advertisers. Tracking these metrics (implementing tracking pixels in each email, tracking each link inside your newsletter, knowing what country the person opening the email is at, etc.) requires a whole different system on top of everything we’ve already covered.
- Deal with spam and abuse: a mail-sending service needs to constantly be checking for abuse. Email servers have been used for bulk spamming since the beginning of the internet, and are problably the biggest problem all newsletter services have. Identifying spammers and banning them before they do lots of harm is probably one of their top priorities.
In short, email is hard. It’s not as simply as hitting “send email”. There are a thousand of tiny little problems, and platforms like Mailchimp take care of all of them.
Is this worth $1k+/mo? Apparently it is, because Mailchimp is a big company with many customers, but I was not willing to pay the price at this moment.
As a programmer, I obviously considered coding my own newsletter system, but the list of problems I would have needed to tackle kept growing as I kept thinking about it. “Not worth it”, I thought, and like any other lazy programmer I looked for people that had already faced this problem before, hoping they already came with a solution and posted it online.
Free alternatives to Mailchimp
$1k+ in emails a month is simply too much.
I searched and searched for alternatives to Mailchimp, until I found a solution.
I ended up setting up my own free newsletter service for about $5 (five dollars) a month, which sends emails to several hundred thousands users for $10 (ten dollars) every 100k emails. Total cost of blasting an email to 100k people = $15, one time. To put things in perspective, sending an email to 100k contacts in Mailchimp costs between $800 and $1000 a month – that’s a ~10x factor in cost increase over the alternative, plus a recurrent vs a usage-based cost.
How did I do it? With free mailing list software. As it turns out, there are a bunch of free alternatives to Mailchimp – most of which are open software. Programmers like me have faced this same problem, and some of them decided to spin up open source projects to tackle this problem. Some of them have gained a lot of traction recently, and are nowadays fully-fledged solutions that serve as great alternatives to Mailchimp.
I ended up shortlisting 4 of them:
- Sendy: honestly, it looks great. It’s not free nor open software, though. The only reason I did not go for it is because I was looking for free software exclusively and Sendy comes with a $69 price tag (one-time fee per domain). But I thought it’d be worth mentioning because if my current setup ends up not working out for me, Sendy is what I’ll try next, even though it’s not free.
- Mautic [6.9k stars]: free and open source. Looked very complete at first glance, but as I kept watching videos of people actually using it, it became really obvious that it was an unnecessarily complex product. Matic feels as if it had been designed by management consultants and enterprise enjoyers rather than marketers.
- Mailtrain [5.5k stars]: free and open source, but it felt a bit more immature / half-baked than the rest IMHO. It’s still an option, but not one inviting to try out.
- Listmonk [14.2k stars]: free and open source, and the most professional-looking one out of all. The interface looked clean and modern, and it felt like it had everything I needed. And at more than 2x the amount of stars on GitHub than its competitors, it seemed to be the most popular of all.
I ended up going for the last one: Listmonk.
Now, none of these are hosted services like Mailchimp. You can’t just sign up for them on their website and use them. That’s not how they work. You need to download their code and install it in your own web server. It’s a bit cumbersome and requires some technical skills, but if you’re willing to do it I’ve written a simple tutorial on how to set up your free newsletter service using Listmonk.
P.S.: Follow me on Twitter to stay in the loop. I'm writing a book called Bold Hackers on making successful digital products as an indie hacker. Read other stories I've written. Subscribe below to get an alert when I publish a new post: