I always wanted to have a personal blog so I started looking out for options. One of the options was to create one. My requirement was just to have a working site where people can read articles and probably can comment on.

My search for a simple content management system lead me to Wordpress. It is powerful, it is simple, gives a lot of customizations, has a pleothera of themes and millions of websites are already built on it. So its well tested and supported.

I wanted to host the blog myself but that brought a lot of challenges

Which host should I chose?
How would that impact SEO?
How much it will cost?
Will I be able to maintain it?

With my money constraints and limited time, I ended up with wordpress as I could find all affordable hostings only with LAMP stack. Nodejs was way of out league.

The first step

I started out looking for free hosting and created an account on https://000webhost.com. At that time it was giving away good amount of data with no ads. With time I tried with other free hosting options like Freehostia. Most of the options were fine but the most important thing SEO didn't work.

The second step

Managing free hosting was becoming difficult. With all the data limits and 1 mysql database I always felt restricted. So I ventured around looking for cheap hosting services. Those were the names that were popular at that time

Hostinger
BigRock
GoDaddy
DigitalOcean
Bluehost

I found hostinger the cheapest with somewhere around half a dollar a month. I could finally create multiple websites with multiple databases. I could now purchase new domains and update their nameservers and can have multiple websites to experiment with.

The third step

I created a few sites with different wordpress installations. While putting effort in creating and configuring those, it was time for SEO optimizations. I tried with wordpress internal LiteSpeed cache. I tried cloudflare. I tried experimenting with browser's cache. But still whenever I opened my site in a fresh Chrome's private window, it took 12 seconds to load the page.

In fact if I go to the site after a few days, sometimes it took around 30 seconds to get the first render. Subsequent fetches were fast.

I know that you can always buy SEO optimization feature for wordpress but I did not want to go in that direction.

The fourth step

One of my colleagues who goes by the codename far11ven introduced me to ghost after learning about my experience. I was still not ready to move out to a new blogging system. In fact when I looked at the pricing on ghost's official blog, I was thrown out

But then ghost being open source and has well documented steps to install on self hosted servers I gave it a try. Though making it work with SSL and other parts were a little tricky.

I found digitalocean to be a good host when it came to nodejs hosting. There are many in the market but I guess you have to chose one.

And it turns out that it was a good choice. Even though the site is not as blazing fast as some other sites are. But I am satisfied for now.

The fifth step

Static site generators - Yes you heard it right.

You develop your site in react. 
You convert it into pages. 
You host pages. 
Browser gets html/css and a little bit of js. 
Pages are pre fetched. 
Navigation becomes instant.

The last step

There is no such thing as the last step. The technology evolves and with it I will have to. Probably this will go on and looking at the pace the internet is growing I might have to write 50 steps soon.

Cover painting by my wife.

https://seedocode.com