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.