3 min read

Hello 👻 World

8 years ago I started blogging on Tumblr - Today I moved to Ghost.
Hello 👻 World

Bye bye Tumblr

I'm finally off Tumblr! I've moved to Ghost, a NodeJS based CMS/Blogging platform.

An interesting coincidence, just as I was doing my First Post to Tumblr, 8 years ago, Ghost was just starting out via a Kickstarter campaign - now, 8 years on they released a new version https://ghost.org/changelog/4/.

Why 👻?

The editor experience is really nice in Ghost, a what you see is what you mean style, with a very Markdown feeling editor. I liked it.

They have clearly been thinking about the publishing and editing experience, with a lot of nice features, without much bloat.

It supports scheduling, large number of integrations etc. A very polished first impression for sure.

I did consider other systems Gatsby.js+Contentful or Hugo, basically anything from the JAM stack trend. I was trying to avoid hosted solutions or massive PHP systems (WordPress/Drupal), no time for keeping up with patches.

Really, it came down to the editor experience in JAM style systems and Ghost won.


I had 8 years of post in Tumblr, over 110 posts, which I wanted to keep. Thankfully Tumblr has a great API, and I was able to extract the old posts out using a slightly modified version of Tumblr-to-ghost. I found the tags made things messy when re-importing to ghost, so modified the script to just assign a single tag (Tumblr) when importing.

I also found a few other tools, for getting data out, including a great post by Pollymath.net, and Tumblr2Markdown was really nice, but in the end the simple approach worked well for me.


I took a stock base theme called Edition, removed the membership features (which as of Ghost 4 are forced on you, somewhat controversially) and added a few other minor tweaks. It's on GitHub - https://github.com/a-c-m/Edition

I like it for now.


It has not been pain free, or even easy. I very nearly gave up at a few points. Many Yaks were shaved.

Problems I ran into:

1. Importing Markdown to Ghost is hard

  • I write a lot in Markdown, so wanted an easy way to import. Turns out there isn't a good one. Which is puzzling.
  • Copy/Paste into the MobileDoc based editor, works fine, but importing files as posts wasn't an option.
  • I explored various options, even starting to write my own converted. In the end I gave up and have legacy posts as embedded HTML

2. Routing / Custom URLs in Ghost is non-obvious https://ghost.org/docs/themes/routing/

3. Static hosting?

  • Given Ghost's history/pedigree from Gatsby, seems like a simple option for static hosting would have been a no-brainer. But it's not.
  • I really don't want to spend over $100 per year on hosting. Nor do I want to support/maintain a NodeJS server exposed to the internet. A static site seemed like the best solution.
  • Many options, most of them partial/not great.
  • Netlify perhaps? https://forum.ghost.org/t/how-do-i-create-a-free-ghost-blog-on-netlify/15662/2 - No, still got to host a public-ish node server.
  • Ghost Static Site Generator - https://github.com/Fried-Chicken/ghost-static-site-generator is what I went with - but really would have hoped something similar was built into Ghost from the start.

4. Redirects

  • So far, due to the static hosting and way I'm exporting/saving the site - I've not managed to get them to work, so will likely lose some SEO juice. But that's OK for now.

My solution

That's it. No ongoing server costs, I control the code, HTTPS, nice editor experience in Ghost. Works so far.