What is Hugo?

Hugo is a static web site generator (SSG). A static site is a mostly non-interactive, read-only web site. A good SSG like Hugo provides good separation between content (like this blog post), layout (how and where that content is displayed) and style (the myriad of CSS stuff I did to make this site look pretty.)

Why a “family” website?

Yeah, it is 2024. We have facebook, instagram, LinkedIn and that ilk. But I wanted a simple place to share my resume and links - with a single URL. And I wanted the same for my spouse, Amanda. Amanda also has an extensive portfolio of projects that would be perfect for showing off on such a site.

Why did I do it from scratch?

Web development is part of the Internet that I had zero firsthand experience with. For years I have said: I can’t make a pretty web page to save my life. And it was true. It may still indeed be true, but now I have much more understanding of content management, layout and CSS. Probably more than I ever wanted.

I chose Hugo because a close friend of mine has a very similar site using Hugo and recommended it. I used the Hugo quick start but quickly got mired in complexity because I didn’t really understand how things worked under the hood. Same goes for just copying my friend’s web site which they politely put up on github. Finally I decided: the best way to learn is to just do it all from scratch: no templates, no third party tools whatsoever. And that is what I did.

Is this a principle?

I believe this is a principle for life that is waiting for yet another blog post. In a very real sense this was about going back to “first principles” to make sure that I understood the basics. Along the way I am picking up (or brushing up on) other skills such as:

  • I made all of my edits using a pimped-out nvim setup
  • In order to get to this point I had to really deck out a new macbook pro with all sorts of tools.
  • My git and github skills were rusty.
  • I was able to play with both chatGPT and Gemini for all of that web development and styling.
  • Looking ahead I will get this site on github and running in a container like github codespaces - something else I would like to learn.
  • I also want to learn how to do continuous deployment to wherever I host this solution.

So you see, by going back to first principles, a lot of other things are snapping into place. New interests are found, old skills improved, new skills gained - and I experience a very real sense of accomplishment.