When comparing Hugo vs GitHub Pages, the Slant community recommends Hugo for most people. In the question“What are the best stacks/tools for hosting a personal site and blog?” Hugo is ranked 1st while GitHub Pages is ranked 2nd. The most important reason people chose Hugo is:
Code can be viewed [on GitHub](http://github.com/spf13/hugo).
Ranked in these QuestionsQuestion Ranking
Pro Open-source and free
Code can be viewed on GitHub.
Pro Single Binary - Cross Platform
Pro No dependencies
All other SSGs expect you to have a full toolchain setup for their language. Hugo is written in Go and distributed as an executable for unix, linux, windows and mac. Just download and run.
Pro Clean workflow
Create your new site, run the Hugo server, edit. Lather, rinse, repeat. Hugo stays out of the way.
Pro Good documentation
Pro Many themes available
Pro Draft mode
Allows you to see changes in real time.
Pro Very active community
Pro Easy to add new content types, data files, and taxonomies
Pro The ability to create and edit files on the web UI gives GitHub pages the same power as a small CMS
One of GitHub's features is a very powerful web editor which helps users edit or even create files right from the web browser, once the file is saved it's the same as a commit. Coupled with pages, this tool becomes even more powerful, giving users a free CMS that is easy to use and create.
Pro Supports Jekyll
A simple, blog-aware static site generator, Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers some other advanced templating features.
Pro Supports custom domains
A custom domain can be added by creating a CNAME file with the necessary domain in the root of the repository and adding/changing corresponding DNS entries.
Pro Free tier
Static websites can be hosted on GitHub Pages for free as long as the repository is public. Private repositories start at $7/mo.
Pro Allows for all the git features when building your site, too
Con No tutorial on how to create a theme from scratch
Con Unable to set cache expiry, must accept GitHub defaults (which are short)
Low cache expires - GitHub sets the cache-control: max-age header to 600 seconds, or ten minutes. Normally, you would set this value to a year so that it stays cached, and then use fingerprinting on your assets. Instead of serving style.css, you would serve something like style-62c887ea7cf54e743ecf3ce6c62a4ed6.css. As it stands now, assets are rarely going to be cached on repeat visits.
This will give a low score on https://developers.google.com/speed/pagespeed/insights with a 'should fix' recommendation around 'Leverage browser caching'.
For a high traffic site this may have implications