How I built my Ghost membership and what it costs to operate

Posted by Matt Birchler
β€” 3 min read
How I built my Ghost membership and what it costs to operate

This isn't going to be a full tutorial, but yesterday I started a paid tier for Birchtree (sign up here) and in the interest of transparency as well as setting expectations for people who are thinking about doing something similar, here's the broads strokes of what's making this work.

Services and costs

Five services are being used to make this happen:

  • DigitalOcean is where I host this blog, which has a flat $16.80/month cost
  • Ghost is free and open source software running on that DigitalOcean server. There is a Ghost Pro service one can use as well, but this is not that
  • Stripe is the payment provider Ghost's built-in membership feature uses, and while I'd love to be able to easily swap in something else, Stripe is what I've got to go with, and they don't have a recurring fee, but they do take about 9% of transactions (this varies by the size of each transaction, the percentage drops as the amount goes up)
  • MailGun is what actually sends the emails that go out when a new post is published as well as when you need to get a magic link to log into your account. This is free for up to 1,000 emails per month, and flexes up beyond that, but I've never hit the limit so far 🀞 (Update: it's been brought to my attention that this plan isn't easy to find like it used to be when I signed up a few years ago. This post explains how you should be able to get to it today)
  • Hover is my go-to for registering domains, and I needed to get a new one for the above emails. I went with, which will cost me $10/year to keep active

This is a lot, and I don't blame anyone who sees this and thinks, "no thank you, that's too much." I will say that Ghost Pro simplifies this a good deal. If I was using Ghost Pro to do this exact same thing, it would be:

  • Ghost Pro varies quite a bit in price, but I'd be on the $11/month plan right now. Ghost Pro would handle emails for me, so no MailGun account would be needed
  • Stripe would still be used to process payments, and their take would be the same. Ghost would not take anything additional
  • Hover would still need to be in the mix to register the domain

Some implementation details

Setting this up in Ghost is pretty simple. Here's the page in the Ghost portal that lets me configure what the sign up modal looks like.

And here's where I configured those membership details.

And here's the MailGun settings, which is literally just entering the domain and the API key generated in MailGun's interface.

So yeah, not a real tutorial, but a quick peek behind the scenes at how this works and what services are linked together to make this possible.