| Note: No later than a couple weeks, Ghost has release version Ghost 4.0 and offers a subscription starting at $9 (yearly). However, if you are a little more technical, and want access to more features and customizations, I would recommend to continue reading the post below

It feels great to have a professional (and personal) blog space. I enjoy writing about technical stuff and my experiences. And over the past years I've attempted many times to launch a blog, but most of these attempts failed. The idea of hosting, deploying and managing everything was very looming and off putting. I often find myself falling into a rabbit hole trying to solve these things through automation. Creating a fully automated CI/CD pipeline to satisfy all of my wishes. But then in the end I always gave up because the direction or result just wasn't there.

I finally found a setup easy enough to start with and I'm very satisfied. Looking back, I could have made things easier for myself. I'm probably not going to use all of the things that are now at my disposal. But funny enough it's always nice to have additional tools😉 Let us go through the list of technical things I've chosen starting with Ghost.

The spooky blog

So as my blog I choose Ghost. It is not really a blog but more of a publishing platform. Over the past couple months I've always been drawn back to the list of features offered by them. For publishing it offers an overall complete experience. It uses Markdown which makes writing posts with code very friendly. Tagging, featured posts and SEO which makes my content more (hopefully) findable and organized. Anything that is a basic necessity for a blog.

You can style your website by of course choosing a theme available through different marketplaces. Both free or paid themes are available, or you can even make your own. It was one of the experiments and it was very fun and a great to learn more about Ghost. It also led me to explore the JAMStack and Gatsby.JS. But enough about that rabbit hole.

Last but not least, Ghost has a more noteworthy feature which is its members and subscriptions. Your readers can register for free and allows them to receive notifications/newsletters when you publish them. But they can also subscribe for a monthly or yearly fee. Respectively allowing you to publish content accessible to registered users only or paying users. Some more thoughts of why I ended with Ghost:

  • Audience: interaction with the readers through many means such as sharing, comments and newsletters.
  • Newsletters: You will have to connect a mailing service such as MailGun to start sending emails, but I really like the idea of having the option to start sending newsletters about maybe the more smaller things that I run into and are not worth a post. Additionally, Ghost allows you to segment your emails giving you the option to send them to free members or paid members (or both).
  • Business: As this is a professional blog, any future business opportunities or career paths that open up are a great bonus.
  • Integrations: Comments, analytics, workflows. The possibilities are great although I don't see myself using anything special. Here is a list of all the integrations currently possible.
Ghost: Turn your audience into a business
The world’s most popular modern publishing platform for creating a new media platform. Used by Apple, SkyNews, Buffer, OpenAI, and thousands more.

Choosing the right vessel for the sea of internet

While exploring Ghost as a blog, I also looked into the hosting options. Ghost is a non-profit organization and in order to support that organization, they offer a hosting service called Ghost(Pro). This service costs $36 or $29 per month depending of you prepay for the year. This price is unattractive for just trying to start a blog.

But Ghost also documents some alternatives. Whether it is self-hosted or containerized with Docker. Working with containers has thought me to appreciate the enough simplicity of creating a container and deploying it in different clouds. For example AWS or on Azure. But these experiments again left me with a sour aftertaste. The overhead of creating a container, managing the database and testing each consecutive change put me off and stopped me in my tracks to further progress. So what I really wanted was a single click deployment without having to worry to much about things such as backup, configuration and such.

Luckily Ghost has an official partner DigitalOcean and they provide prebuilt packages. Even better, they provide a "Ghost 1-Click App" on their marketplace and promise to have an instance up and running in 2 minutes. For virtual machine sizes they offer a couple sizes and the cheapest one with decent performance comes for $5 per month. This is a great starting price and for the first 2 months there is a free $100 credit.

How to install Ghost on Digital Ocean - Official guide
A full production install guide for how to install the Ghost professional publishing platform on a production server running Ubuntu 16.04, 18.04 or 20.04.

All that is required from you is that you bring your own domain. If you don't have one at the moment, that is fine. You can come back after creating the VM. The installation guide was easy enough and after following every step I had my blog running, as promised, in a couple minutes. Since I didn't have a domain yet, I was playing around a bit with ghost using the IP address of the VM.

After purchasing my domain, I followed this handy guide on how to connect my domain to the Virtual Machine. After that I impatiently waited for things to propagate and presto everything was working as expected. With the domain connected it was time to go back to the VM and setup the SSL.

  1. Connect to the VM using an SSH session
  2. Login as ghost-mgr  sudo -i -u ghost-mgr
  3. Navigate to the ghost folder location. Typically at /var/www/ghost/
  4. Run ghost setup ssl and follow the instructions

And that was it. Time for the launch. Let the countdown begin. 10...9...8...

We have liftoff 🚀

That pretty much concludes the setup. I also created a personal website as well with the exact same setup. It was easy enough to do it again. This personal website focuses more on personal and travel related topics. If you want to take a look https://rikvandenberg.com

To conclude my initial journey:

  • Launched a Ghost website
  • I'm hosting it on a $5 VM on DigitalOcean
  • Bought a domain
  • Setup an SSL with the LetsEncrypt integration of Ghost

Feel free to ask any questions or leave a comment. I would love to hear your feedback or just interact.

If you are interested in trying this all for yourself or just want to try DigitalOcean and see what they've got to offer, below you will find an affiliate link. When you sign up, you will receive $100 of credit for a period of 60 days. After that, if you decide to continue using DigitalOcean, I also receive additional credit.

DigitalOcean – The developer cloud
Helping millions of developers easily build, test, manage, and scale applications of any size – faster than ever before.
Affiliate link to try DigitalOcean with $100 credit for 60 days which benefits me as well