Welcome to the repository for my personal website, which can be visited at https://www.alexwforsythe.com/

How does it work?

The site is built and deployed using GitHub Pages.

Why do I use GitHub Pages?

  1. It can automatically build the site from Markdown files (like this one)
    • This is easier for me than working with HTML files and, so far, I haven’t needed any fancy HTML5 or JavaScript features
    • Plus, all my project repos already have README.md files, so I don’t need to build separate webpages
  2. It’s easy to deploy – all I have to do is push changes to the master branch and wait a few seconds
  3. Hosting is free!

Advanced stuff

  • I’ve configured the site to use my personal subdomain (alexwforsythe.com) using a CNAME record so it can be visited there, in addition to the default GitHub subdomain for my account (alexwforsythe.github.io)
  • I use the minima jekyll theme which gives a few advanced options in _config.yaml
  • I use a few jekyll plugins

Development

One-time setup

  1. Install Ruby
  2. Install Bundler: gem install --user-install bundler
  3. Install gems: bundle install

Build and run

To run the site locally:

  1. Build the site:

    bundle exec github-pages build
    
  2. Run the site:

    bundle exec jekyll serve
    
  3. Visit the site at http://localhost:4000
  4. Stage the site
    1. Push changes to the gh-pages branch
    2. Visit the site at https://www.alexwforsythe.com

Deployment

  1. Push changes to main
  2. Wait a minute for GitHub to build and deploy the site
  3. Visit the site at https://www.alexwforsythe.com

Resources