Recently I moved my personal site zurassic.com from Ghost to Jekyll and Github.
I was using DigitalOcean to host Ghost. I paid $5/month for the VPS and the database is contained in the server. I also setup Ghost to automatically store image on my S3 bucket.
And before that, I tried MSN Space and Tumblr. The MSN Space was shut down a couple of years ago (I have to move all my contents out) and it’s very hacky to customize Tumblr to look the way I want.
Ghost is awesome
DevOps is no fun
But when there is a new version, I have to ssh to the server, git clone the repo and have to make sure the database intact during the migration. It’s adding some DevOps work to me and what I only care is just writing blog. I guess that’s why there is a paid version of Ghost existing.
Pure text all the way
Also, I don’t have like the fact that the blog content is written in Markdown but stored in a database. I like Markdown because of it’s pure text, so it’s easier to edit and maintain. Ghost uses database to save the blog content, along with other meta information, such as date, category, etc. It kind of defeats the purpose of using Markdown.
I looked around, and I found Github + Jekyll is the ultimate solution for the following reason:
I own the content
There is no vendor lock in. The content is a Git repository and I can build my site and publish to anywhere. Actually if Github is down, I can publish the whole site to Amazon S3 and use its static hosting function to host my site. Also, Bitbucket supports static site hosting too.
Version control is built in
That’s the beauty of Git.
Pure text all the way
Besides blog content being written in Markdown, Jekyll also uses Front Matter (which is just a block of pure text) for blog meta information. I can use my favorite editor (VS Code in Vi Mode) to edit my content and meta information easily.
Jekyll gives me the freedom to edit every bit of my website.
The website is built to html files before publishing and most of the time the server is just hosting static files. It’s easy to use CDN to cache the whole site.
Also, I use Amazon S3 to host all my blog images so the server is off loaded.
Be able to edit on Github
Sometimes when I’m not at my computer and want to create a blog or update the content, I can still do that on Github. Github provides functionality to create, edit and delete a file in any repository. Also the Github editor is pretty good.
Future: blogging on Github
I have seen people blogging on Github Issues, where you can use Labels for category and you can even have user comments.
Similarly, there are people blogging on Gist. It supports Markdown perfectly and you can also have user comments.
I’ll recommend Github for blogging to software engineers.