How to build a personal website

May 31, 2020 Jekyll Bootstrap 4 Rake Disqus Github AWS Route 53

Introduction

In order to build a personal website that is accessible worldwide, we’ll need to do 3 things:

  1. Create your personal website artifacts;
  2. Create your own domain name for your website;
  3. Host your website in the internet and point your domain name to the host/provider;

And to achieve the goals above, I basically picked up the tools/frameworks below:

  • Jekyll: a framework to create your website;
  • Amazon Route 53: where I purchased my domain name;
  • GitHub Pages: yes! Now GitHub supports hosting personal websites!

Jekyll

Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. And there’re tons of themes you can find online. This blog originally started by following the steps below:

On top of that, I did lots of modifications and refinements as well as adding additional features, and you can find the boilerplate of this blog from this Github repo: https://github.com/goplusgo/boilerplate.blog.goplusgo.me.

The cool thing on Jekyll is that you can compile and serve your website locally by running command:

jekyll serve --watch

to live monitor any changes you made.

GitHub Pages + Amazon Route 53:

Follow this link to deploy GitHub pages with AWS Route 53 registered custom domain and force HTTPS.

The coolest part on Github Pages is that whenever you push your commits, Github will automatically compile and deploy your project. Normally, it takes a minute or two to apply the changes when your refresh your website using the external link.

Note: as GitHub Pages only supporst limited number of Jekyll themes and the one I used for my personal website is just not the lucky ones. Therefore, we need to switch to remote-theme to make it working, see commit.

Comments

This blog integrates Disqus as the commenting system, see Disqus for more details.

Post Creation

This blog website uses Rake, to manage post creation. The template of a post is defined in Rakefile and the command used to create a new post is:

Rake post command
rake post title="Create post using rake" subtitle="I am testing rake post command"