2021-12-02 07:00

Moving From Substack to Ghost — My Experience

Digital nomads. Flavour of the day. Looking for a better digital experience. Every reasons are good to move from one place to another in the digital world. It’s about having some fun.

I recently came across this blog post from Greg Morris where he writes: I look at blog designs like Birchtree.me and think to myself I want a blog like that” and then go out and try to build one.”. I often tell myself the exact same thing. But then, not long after, I came across another blog post but this time by Andy Nicolaides writing on his blog, The Dent:

I’ve just gone through yet another blog migration, moving from Micro.Blog to Ghost (again). I was happily posting to Ghost a year or so ago, saw a nice looking blog on Micro.blog and jumped ship. I then sat there, not posting for half a year, before I saw Greg Morris’ updated site over on Ghost and my blog envy kicked off again. Let’s not even mention how incredible Matt Birchler’s Birchtree looks right now!”

Ghost has always been a source of curiosity for me, coming back to it from time to time to have a look and see how it is evolving over time. Following those two blog posts, I got back to one of my article about a past experience with Ghost for photo sharing. At the time, it didn’t go well. Furthermore, for unknown or clearly defined reasons, I started using Substack to host my newsletter. So, this time around, I came back to Ghost to look at it has an alternative to Substack. Why? After all, I was quite happy with Substack. And yet… If I look at Substack and Ghost, there are many things that made me dubious of my choices.

  • I don’t get any subscribers from Substack discovery or because Substack is very popular these days.
  • I prefer the way Ghost is handling the publishing process and the distinction between having a CMS and a newsletters publishing platform within the same platform.
  • Ghost’s API supports text editors like Ulysses which would help speed up the process of creating newsletter issues. By working directly in Ulysses each new issues would be much easier to put together as Ulysses supports templates., Substack doesn’t. Since the basic structure of my newsletter stays the same each month, using a template makes full of sense.
  • Substack offers some visual customization options, but they are quite limited. On the other hand, Ghost offers themes which helps a lot to make a more personal looking website.
  • Ghost supports Unsplash, which is a must for me.
  • Ghost provides better support for photos than in Substack with photo galleries. This could prove to be useful for my photo legend series, among other use cases.
  • Integration of Plausible analytics is easy something not possible with Substack. Another must-have for me.
  • Stripe integration which I already use for Medium payments if I ever chose to make a paid tier to my newsletter.
  • Commenting is possible by tweaking the theme and adding some integration code. Yet, I wish there was a better and easier way to add this to a website. In the future I could try to setup Commento for comments using this procedure. Ghost theme customization is available only on mid-tier and up paid plans. This feature could replace the thread feature available on Substack.
  • Good integration with Buffer via Zapier, IFTTT integration possible only via RSS feeds. As a paying member of IFTTT, I chose the latter.
  • Better RSS feeds support on posts, tags, pages just by adding /rss to any URL. On top of that, it is possible to customize the webpage referring to a tag by adding a header image and a description, just like here for the Photo Legend Series.
  • Selecting a fully featured theme is challenging, as Ghost doesn’t provide an easy way to filter themes by supported features.
  • I’ll leave my Substack account active just for the Substack Reader feature.
  • Easy migration path from Substack to Ghost using this procedure.
  • Should I import my content? After a short test run while using the 14-days evaluation period, it was clear that I had to.

How Ghost Could Be Improved for Me?

One of the most powerful and useful features of the Ghost editor is the ability to create and re-use content snippets. If you’ve ever used an email client with a concept of saved replies then this will be immediately intuitive.

  • Integration features and custom themes for the entry-level paid plan (access to the API admin token).

  • A customizable dashboard.

  • A native client on Mac or iPad.

    Steps to Move From Substack to Ghost

  1. Export my data from Substack — this took less than 10 minutes to complete. Substack makes this super easy to do.
  2. Import my subscribers list into Ghost’s members list.
  3. Download Xcode from the Mac App Store, launch it for default configuration (required for the next step).
  4. Install Homebrew in order to be able to install NPM modules later (importing content into Ghost requires Node.js and NPM modules): https://treehouse.github.io/installation-guides/mac/homebrew
  5. Install Node.js and NPM: https://treehouse.github.io/installation-guides/mac/node-mac.html
  6. Follow this procedure to import articles into Ghost CMS. This is done via command line. migrate substack numericcitizen-export-2021-11-14-m9k19kr99s/posts.csv --readPosts numericcitizen-export-2021-11-14-m9k19kr99s/posts --url https://numericcitizen.substack.com --useMetaImage --useMetaAuthor --drafts falseA lot of my decision to switch depended on the success of this step. If content was successfully imported without too much required tweaks, I would consider this a success and go with the next steps.
  7. Import the created zip file (the migrate command generated a 230 mb zip file ready to import). This file was then imported using this procedure.
  8. Once the import is complete and without error, configure site pages and tags.
  9. Review imported content and set tags according to each post content. That step was tedious but was mandatory to recreate the same content structure currently on my Substack website.
  10. Configure and write a contact page so that users can click from the bottom portion of my Ghost website in order to get in touch with me.
  11. Connect my account Ghost to my Stripe account just in case even though my newsletter is free — you never know!
  12. Configure Ulysses publishing options to publish content from within the application to Ghost. After all, this was one of the main reason I switched from Substack to Ghost, right?
  13. Do a test run with a fake article, check RSS feed content generation.
  14. Configure the support and reply-to email addresses.
  15. Setup Plausible analytics and add it to my Ghost website using the customization feature, in the header section.
  16. Update all my IFTTT automations for when a newsletter issue comes out for cross-posting to Twitter via Buffer.
  17. For mid-tier paid plans only: Add Twitter Revue new sign up to Ghost via Zapier (this requires the Admin API token which is not available in the entry-level paid tier.)
  18. For mid-tier paid plans only: Add Ghost cross posting to Buffer via Zapier (this requires the Admin API token which is not available in the entry-level paid tier.) It took me about a day of work to accomplish all this, from the trigger to the final announcement post on Substack. I’m super happy with the end results. You can subscribe to my free newsletter by going to the website: https://numericcitizen-introspection.blog.

Ghost Service Substack How-To


Previous post
Notion Releases Their Public APIs — Here Is Why I’m Excited Notion's APIs are out in beta - what this means for Craft users
Next post
My Blogger Workflow As of 2021-12 This Is My Blogger Workflow as of 2021-12