Substack is an email newsletter platform which allows writers to really easily publish a newsletter to their subscribers and charge for optional "premium" access.
As a tool, it sits between a marketing-focussed email platform like Mailchimp and blogs, because the email and web versions of content are equal citizens on the platform. To make money, Substack charges 10% on all payments from paid subscriptions.
In v3, Ghost has many of the features of Substack, including email newsletters, accounts for members and the ability to charge for subscriptions/membership.
In this post, we will utilise Ghost's memberships and email features to emulate Substack but on your own server, on your own domain and with zero transaction fees.
Here's a quick overview of the steps I will cover in the post:
- Set up a Ghost blog
- Use a newsletter-first theme which supports memberships, like Substation
- Enable members and email newsletters
- Add paid plans
- Add community features with a commenting tool like Cove
What is Substack?
The key features of Substack are:
- send newsletters
- host an archive of newsletters online
- let readers subscribe to the emails
- let readers pay for premium posts
- let readers comment on posts once logged in
- show a list of popular posts from the platform
Publications running on Substack each get a hosted version of the newsletter, an online archive and tools for readers to sign up to paid plans.
Why build your own version of Substack?
Email newsletters are a great way of reaching people and creating a community around you and your ideas.
If you create your own version, you can own everything. You change the design, the copy—everything—as you see fit. Importantly, you also have all of your content on your own domain, which Substack does offer but for a one-time $50 fee. (Why is this important?)
You will also avoid Substack's 10% fees for all premium payments. Ghost takes zero fees for premium payments. (You will see the same payment processor fees on both platforms as they are both powered by Stripe.) If you have 100 customers paying $5 a month on Substack, you will earn just $450 after their fees; with Ghost you get the full $500. Remember, you will have hosting costs to self-host with Ghost.
Start a Ghost site
The first step is to create a Ghost blog. There are many ways to do this: Ghost(Pro) (Ghost's own hosting solution), using another managed host like Gloat or Midnight, using an install service like Gloat's to set up self-hosted sites, or simply downloading and self-hosting yourself (installing the code yourself on a server you own).
Once Ghost is set up, you need to go into Labs in the admin and toggle the Members feature on.
With one click, you have now enabled a way for readers to subscribe to your content and log in to your site (the front-facing site, not the Ghost admin).
Set up email newsletters
In order to send out newsletters, you need to connect your Ghost site to an email sending service. Ghost supports only one at the moment: Mailgun.
If your site is on Ghost(Pro), this integration happens automatically behind the scenes, so you don't have to do anything.
If you self-host, you will need to sign up to Mailgun and do some configuration with your domain so you can send emails from it.
If self-hosting or are on another host, you will need to paste Mailgun API credentials into the Members settings in your Ghost admin (pictured above).
Use a newsletter-friendly theme
A crucial part of emulating a newsletter service like Substack is how your site works and looks.
Most Ghost themes look like blogs and are focussed on showing posts and the web experience. Substack pushes the newsletter to the fore, with web content slightly hidden.
I created a theme called Substation (click to see the demo), which prompts subscriptions to your email version of your content. Posts are all available online but at an
The theme also supports member-only and paid-only content, just like Substack. And users can easily sign up to your paid plans once they log in (using Ghost's in-built magic link auth system).
Add some paid plans (optional)
You may want to offer premium content to paying members. This is very easy to do in Ghost. You first need a Stripe account (like you do on Substack). You can then simply paste your API credentials into the Members section of the Ghost admin (similarly to the Mailgun integration mentioned above).
You can set a monthly and yearly fee in six different currencies. Currently, different tiers are not available; this is similar to Substack.
Since the launch of Ghost v3, most Ghost themes support showing paid plans and allow members to start paying for content. Substation also does this out of the box.
Substack has comments for each post. These can be for all members or limited to paying members. You can even create discussion threads, which are posts specifically for discussion in the comments (to mimic this in Ghost, you can just use a normal post).
Using Cove, you can create the same commenting features, including the different access levels.
Cove runs on top of Ghost's member features, so you can limit commenting only to members/subscribers. Plus, any logged in subscriber (i.e.: anyone who has clicked on their subscription confirmation link) can leave comments immediately.
Installing Cove involves copying some code into your theme, or simply pasting your account ID if you use a supported theme.
During set up, there are some different ways to show and hide comments based on your user's access level. Ghost has some very useful template tags that make this very easy.
And you're finished.
You now have a Substack-like site on your own domain, in a totally customisable site, and with no added fees.
Use this set-up to write independently, own your content, make money from your writing, and be free to change things up whenever you like.
Links to referenced tools
Thanks for reading!
I am the founder of Codelet. I have four years experience publishing and developing for Ghost, on over 100 sites. Codelet is an agency and blog about the basics and hidden features of Ghost.