Vojtech Rinik


Adventures sending promotional email

Adventures sending promotional email

Vojtech Rinik's photo
Vojtech Rinik
·Jan 22, 2022·

3 min read

Subscribe to my newsletter and never miss my upcoming articles

My side project FocusTask has gotten to the point where I built a landing page, and started to look for users to join the waiting list.

An obvious place to look are my previous users. For my older app FocusList I have more than 10k emails lined up. Now to be clear, I don't spam my users on regular basis. But I'm thinking they'd want to know that their developer is building something new.

So how do you email 10k users on a budget and without doing much work?

Preparing data

First, I exported users from Firebase and loaded them in a spreadsheet. (Used Numbers.) I used filtering functionality to exclude users who never logged in. (About 10%).

Then I sorted by time of last login. I considered users who logged in recently my best "leads". Now I Googled an online tool that split my large CSV into bunch of smaller CSVs of 200 emails each.

CleanShot 2022-01-22 at 07.44.12@2x.png

Testing tools

I was going to try different services for sending emails and compare performance. My first idea was to use Mailgun with a Node script. But I tried using Mailgun for my transactional emails, and even my "signup confirmed" emails were ending up in spam. To be fair to them, it was my fault because I didn't configure my domain properly.

Instead of fixing it, I decided to try Mailerlite. I had pretty good success with this:

CleanShot 2022-01-22 at 07.47.40@2x.png

I thought those 50% open rates were pretty good. But it's my first time trying something like this, so who knows.


Now I have to mention Postmark app. After fiasco with Mailgun (my fault) I just thought to give them a try - and it turned out to be great for transactional email. Their UX is perfect, and I've been able to configure my domain properly.

To increase credibility of my domain, I added this pretty loud warning about checking your spam folder:

CleanShot 2022-01-22 at 07.50.58@2x.png

I always thought that verification of email after sign up is for making sure you have real email - and now I get it. It's to have people fish it out of spam folder if it goes there, and builds your domain score in the process.

Postmark is costing me 9€/mo for 10k emails every month, which will do just fine for my needs. (I need to blast 10k emails and then send transactional email occasionally.)

Broadcast stream

For my blasts, I decided to try Postmark too. Mailerlite was fine, but I'd have to pay about 50€ to import 10k contacts.

Postmark has separate "streams" for both transactional and promotional email:

CleanShot 2022-01-22 at 07.52.08@2x.png

This was really easy to set up in Node:

await client.sendEmail({
  From: "Vojtech Rinik <vojto@focustask.app>",
  To: to,
  Subject: subject,
  MessageStream: "broadcast",
  TextBody: text,
  HtmlBody: html,

And voila, I had the same thing as Mailerlite in a few minutes. I just emailed a batch of 200 users about 30 minutes ago, and already looking at pretty good open rates:

CleanShot 2022-01-22 at 07.58.35@2x.png

The 1.5% open percentage is misleading, because email contains 3 links. So it's more like 4.5%. Let's give it 24 hours and see what happens!

What is FocusTask?

Glad you asked. It's my new todo app. I'm just trying to come up with these clever features such as:

  • Estimating tasks, so you could see which are easy (1 pointers) and which require going somewhere (errands)
  • Snoozing tasks, so they disappear and come back at the right time
  • Planning tasks, so you can put them on your calendar
  • Follow-up tasks - when you finish a task, you can prepare a task to be created automatically after finishing another tasks

I'll be very happy if you sign up for the waitlist on the landing page!

Share this