Switching to Ghost: Why and How I Did It

Switching to Ghost: Why and How I Did It


I merged 3 digital publishing tools into 1 and this is the story of how and why.

This is a rather long article so feel free to skip to the section that matters to you:

  • My Previous Publishing Setup
  • The Hassles of the Prior Setup
  • Considering My Options
  • Ghost: Built to Last
  • Executing the Migration

My Previous Publishing Setup

I've been running my personal website and blog articles on jasonshen.com with self-hosted version of Wordpress since 2010.

I started a mailing list to share new blog posts with subscribers a few years later, using Mailchimp as my service and eventually switching to Converkit some number of years after that. I had ideas of using their powerful automation tools to send email sequences but never got around to it.

In May 2020, I started publishing on Substack. Though I was sending my blog as an email newsletter, it was written to be read on the web first and email second, where as with Substack it's the reverse. There's a personal nature to it that I find compelling. As I wrote then:

Hey ya’ll. I’m excited to try something new here. I’ve been blogging since 2010 and sending email newsletters for almost as long, but to be honest, it’s been starting to feel stale.

Part of it is because I’ve gotten better as a writer and my standards are higher for what constitutes a “proper post”. Part of it is because I am further into my career and I haver greater expectations for what “someone like me” should be writing or saying.

This is a chance for me to do a fresh start. It’s going to be a lot more raw and whatever’s top of mind.
Welcome to Making Connections
A random walk down tech, fitness, product thinking, org design, nerd culture, and persuasion/behavior change.

I initially called the newsletter Making Connections, because my brain is all over the place and I have a hard time narrowing down to a specific topic or niche. At the 1 year mark I reflected on my journey and renamed the newsletter Cultivating Resilience, which is what it's still called today, half a year later.

To me, resilience was just narrow enough to constitute a "topic" while being broad enough to allow me to just write about anything that I find interesting. As I noted in my 1 year in piece:

New Name: I didn’t think too hard about the original name, because it wasn’t worth optimizing for when I had essentially zero subscribers. Starting today, this newsletter will be renamed Cultivating Resilience. The content won’t really be changing since resilience—adapting successfully to change—is deeply embedded into just about everything this newsletter already covers: tech, productivity, fitness, persuasion, and systems.
050: One Year In
A reflection on the first year on Substack

The Hassles of the Prior Setup

You might ask, why make a switch at all? Well my existing set up had gotten quite cumbersome and I wanted to simplify it.

I would write and publish content on Substack. Then I would copy and paste the content into Convertkit so I could email my old list. Eventually I hooked up Convertkit to pull from an RSS feed of my Substack, which would get 95% of the content, but not things like Twitter embeds, which I would still need to screenshot and attach directly.

I would also remove references to the name of the newsletter and Substack since people on the Convertkit list weren't aware of having signed up for a Substack. Eventually I even tried hiring a virtual assistant to do this step for me, but quality control was hard and I felt it was a spurious use of resources.

I would also take some of my newsletter posts that I thought were more extensive, in-depth, or original, and re-publish them on Wordpress as standalone blog articles. Even though I wasn't pushing a ton of content to my website, it still gets natural traffic just from people Googling my name and long tail SEO and I didn't want it to see too dead.

Considering My Options

I had a couple options at this point for simplifying

  • Go all in on Substack
  • Go all in on Convertkit
  • Wordpress + some kind of emailer
  • Go all in on Ghost

Substack: I could have gone all in on Substack, and migrated my domain over to Substack, which would have solved the content proliferation.

But Substack doesn't give you that much control over how your website looks, and call me vain or a control-freak but I wanted much more power over how I represent myself online. Substack SEO also is awful. I couldn't find posts I had written by searching "jason shen substack KEYWORD" which I could easily do with my blog and as I wrote more, this problem would continue.

Convertkit: I love the folks at Convertkit, they've done some amazing things with landing page builders and started letting you publish your email newsletters on the web, creating a sort of "blogging" feature.

But Converkit is still primarily an email marketing tool to help creators capture emails and send content to get people to buy stuff. Which is really valuable and great for people who sell workshops and training and courses, but I don't really do that.

Wordpress: So I could have gone back Wordpress/Automattic and to be honest, I haven't explored all the details of their paid Wordpress plans. I historically shied away from in favor of retaining control through self-hosting. Wordpress is the granddaddy of blogging tools, has great SEO, a huge ecosystem of 50,000 plugins and oodles of themes and frameworks.

But I would still need a way to send email newsletters so I would still end up with two fairly distinct tools, which wasn't great. I've also had issues where because I didn't keep my Wordpress instance and all my plugins updated, my system was hacked and I had to completely deprecate my old site. That's partly the risk I take with self-hosting in addition to WP's popularity (and thus vulnerability) and was a huge pain.

Ghost: Finally, we have Ghost, an open source publishing system. They count Buffer, Unsplash, Superhuman, OpenAI, Duckduckgo, Airtable, and Clubhouse as customers. I remember seeing Ghost launch as a Kickstarter project way back in 2013. It felt like the modern successor to Wordpress: both have an open source codebase that anyone can download and do self-hosting on, and both monetize via a paid hosted option.

But Wordpress was founded back in 2003 and while it's been a juggernaut in the publishing space, it's trapped by the architectural and technological decisions made early on, using a LAMP stack (Linux, Apache, MySQL, PHP) which while remarkable at the time, has proved problematic over the years. Ghost instead was built on Node.js, a super popular framework designed to be fast, easy to build on, and capable of handling many concurrent connections.

Ghost Pro offers a great web publishing experience, reasonably good email marketing / newsletter options, and has the concept of a "membership" with different tiers that you can use to gate members-only content. Plus because of it's API-oriented architecture, it has tons of integrations.

Ghost: Built to Last

A journalist friend of mine asked if I thought Ghost would "overcome" Substack. I told her that overcome wasn't the right word. I think Ghost will outlast Substack.

The Ghost organization is set up as a non-profit which is uncommon for a tech company, but since it's open source, it can do a lot with the ~30 people they have as of Nov 2021. They publish their metrics publicly and have doubled from $2M to $4M ARR in the last few 24 months, a healthy growth rate for such a small team.

This set up (nonprofit, open source, low headcount) means Ghost does not have the pressure to grow exponentially nor could it really be "acquired" in the traditional sense. Having been a startup founder many times and observed the tech industry for the last 15 years, the pressure to grow and go public or be acquired can result in massive changes for users.

Substack was founded in November 2017 raised a $65M Series B in April 2021 that valued the company at two-thirds of a billion dollars. That's a huge number and even with their recent milestone of one million paid subscriptions, that's no where near enough to justify this valuation.

Doing the math, 1,000,000 subscriptions * $100/year average newsletter subscription  * 10% take rate = $10M in net revenue which means they are valued at 65x revenue, in comparison Etsy trades at 16x and Airbnb trades at 31x revenue, so still lots of room to catch up.

The other thing I respect about Ghost is their willingness to make significant product changes. While the platform started only with web publishing, they identified and made pivots to their product to focus on creators, subscriptions, and newsletters. Compare their Kickstarter splash image in 2013 with their current one in 2021.

Ghost in 2013
Ghost in 2021

As a PM and founder, I can attest to the fact that they were willing and able to make such a radical, prescient shift with such a small team is remarkable and encouraging as a customer.

The second you want to step outside the confines of [Medium or Squarespace's] design, or functionality, or do anything outside the little box which they let you play in: You're stuck.

Also, they can and will pull the fucking plug on you at a moment's notice. ("Medium abruptly cancels the membership programs of its 21 remaining subscription publisher partners")

An excerpt from After 5 years and $3M, here's everything we've learned from building Ghost

I think platforms like Substack are trying to be the Amazon of this space, with a big marketplace and lots of people that exist under one brand. They want to be huge, and take on big media companies in a pretty aggressive way. Where we fit in is trying to be the Shopify of the space, with a long tail of thousands of publishers powered by a common set of technology. Nobody needs to know what Ghost is. I want people to know the creators that we power, instead.

John O'Nolan interview with Indie Hackers

John O’Nolan of Ghost ($3.3M/year) talks creators, decentralization, no-code
The non-profit blogging platform Ghost is now doing over $3 million a year. That’s up from $1.5 million this time last year, and the company’s never rec...

Executing the Migration

Here's roughly the steps I took to migrate my systems. It looks like a lot of steps but it wasn't as bad as it seems when I was doing it. The whole thing took about a month.

  1. Research my options and tentatively go with Ghost
  2. Create a Ghost trial account and play around with the site to see if I'm ready
  3. Look around for themes that look good and settle on Ubud
  4. Pay for a Ghost(Pro) annual account to get concierge support
  5. Added a few friends as members and asked them to open and interact with my content and give me feedback on the email newsletter that Ghost sends
  6. Set up an Articles, Book Notes, and Newsletter tag for each type of content
  7. Export my Wordpress blog content and import it to Ghost
  8. Export my Convertkit and Substack email subscribers and import to Ghost
  9. Optional step: use Substack and Convertkit's email scoring system to tag / label your most engaged subscribers
  10. Export my Substack content and import to Ghost
  11. Tweak the theme: Obsess over my profile picture and bio on the homepage. Add the subscription embed form on the "sign up for Cultivating Resilience" newsletter page.
  12. Install website analytics (I could have used Google Analytics but have wanted to try cookie-free tracking with a paid Plausible account)
  13. Configure Namecheap to point my domain away from SiteGround, which hosted my Wordpress installation, to Ghost
  14. Re-enable my Google Workspace email (it went down after I updated my CNAME and I needed to add an MX record so jason@jasonshen.com still worked)
  15. Set up 301 redirects to Ghost as I changed the slug of my articles to remove the year from my permalinks. Without doing this, many Google search results for my old blog posts would hit a 404 page
  16. Send my first newsletter via Ghost!
  17. Ask all my Substack and Convertkit subscribers to make sure they got my Ghost blog post in their inbox as I would be using that system going forward.
  18. Writing this post!

Final Thoughts

It's been a few weeks since I sent my first newsletter post from Ghost: 077: Why External Benchmarks are Flawed & Evolution Breeds Inefficiency and I've only hit a few minor hiccups.

The main one being Twitter embeds that were migrated from Substack appeared only on the web publishing, but not in the email. I believe though that ones added natively in the Ghost editor do work, so that one should be now resolved.

The other minor issue is that people keep signing up for my Substack so I have to manually add them back to Ghost. This one is also temporary as I can shut down my Substack fully sometime next year.

Overall, I'm glad I made the switch. I'm proud of the site I have, I like having newsletters and articles in a single place, and I'm looking forward to building out a membership library of resources and content as a paid creator sometime in 2022.

Ghost feels like a wonderful new home and a place that will support me in my ongoing journey as a creator.