Today we have many options to create a blog or a website. If you are looking for a paid service, you have a lot to choose from. In my opinion, and at the time of this writing, the best paid services out there would be ghost and WordPress.
However, if you are like me who wants to have full control on the data, who is willing to spend a little bit of money (less than any service out there), not willing to compromise on the code quality or the user experience, then you should have a closer look at the Ghost blogging and publishing platform. Ghost is a well crafted Node.js app.
This is the very first post on this blog so I decided to simply show you how I created this blog. It took me around 15 minutes in total to setup everything and it will cost me 5USD a month.
Let's get to the good stuff.
First, get a server. Again, so many options. I went for DigitalOcean because I just love their simplicity, reliability and support. But you can choose any other provider like AWS. Here we will use DigitalOcean one click app for Ghost.
Once you have selected to install Ghost instance, it will ask you what kind of instance you want. Its a little different than what you might be use on AWS, you select a fixed instance type and there are no surprises. Ghost blog runs happily on the smallest of all instances, it comes with 1GB memory, 25GB SSD and 1TB of data transfer.
Once you have created a droplet (that's what DigitalOcean calls their instances), simply ssh in to your box and it will guide you through.

And by the way, SSL comes for free and the ghost package install will set everything for you using lets encrypt certificates. These certificates are short lived but this setup also adds a daemon to auto renew them.
You will have few more things to do in order to setup your domain correctly but the DigitalOcean admin UI will guide you through it. If you get stuck, tweet me and I will try my best to help out.