Quick and dirty info about how this site works:

Hosting: Firebase - comes with free SSL cert

Version Management: GitHub

Build: Hugo (KeepIt theme)

The hugo site project folder is also a git repo.

Pipeline: I write a new post with the command scblog <post-name>.md, which is a custom function in my .zprofile. It opens the new post in the Atom text editor:

  1. function scblog {
  2. export HERE=$(pwd)
  3. cd ~/hugo/samcipriani.com/
  4. hugo new posts/$1
  5. atom content/posts/$1
  6. cd $HERE
  7. }

After writing a post, I just run deploy.sh:

  1. #!/bin/zsh
  2. echo -e "Deploying updates to GitHub..."
  3. # Build the project.
  4. hugo -D
  5. git add .
  6. # Commit changes.
  7. msg="rebuilding samcipriani.com site `date`"
  8. git commit -m "$msg"
  9. # Push source and build repos.
  10. git push origin HEAD
  11. firebase deploy

Notice the firebase deploy command - this is a very useful set of CLI tools by Google. It is configured to deploy from the ./public directory; likewise hugo is configured to build the site to the ./public directory.