It’s been interesting to see how LLMs, specifically Claude and ChatGPT, mostly running inside VS Code, do when I built this website. It required knowledge of Hugo, the Hugo framework (Beautiful Hugo) I chose, the Go template language, Markdown, and CSS. From this list, I only had prior experience with Markdown. The LLMs performed shockingly well across all of these languages, looking at the big picture of my code base while doing so. They almost always found solutions to my questions and code changes that I expressed in English. In a few cases, they did not look at a high enough level to see that some things were framework design decisions made years ago while the Hugo platform and best practices marched forward since then.
[Read More]Hugo Server
Hugo has a command called hugo server that both builds the code and launches a web server that, in real time, updates a browser pointed to localhost:1313. This makes interactive development and debugging a breeze. But this command also temporarily updates all the links from the target domain to localhost and back. This makes a mess for Git because many of the files in the public directory, which is deployed after a Hugo build, are left in modified status.
[Read More]Hugo Modules
When I added the Beautiful Hugo theme to Hugo, I originally treated it as a Git Submodule, which made it a secondary git-managed unit under the Hugo theme subdirectory. After runnnig into complexity headaches managing it this way, I switched to the much cleaner Hugo Module technique, which leverages the Go language Module construct. To make this switch, however, required me to undo the git submodule commits, and thankfully ChatGPT helped me navigate this process. Now, I have separation between my code and the framework and have the ability to update each independtly, with git management over only my code.
Hugo
For my new static website at Fastmail, I decided to use Hugo. It is a file-based framework that uses the Go template language, Markdown, and CSS. I’ve been developing it with Visual Studio Code using the Claude Sonnet 3.5 LLM assistant. There are many new-to-me concepts, so I decided the best way to learn it is to dive in and just build and iterate. I am a complete novice with much of this, so it’s been fun to experience the brilliance of the AI code assistant to quickly learn how to do things as well as debug problems. I’d conservatively estimate that I’m at least 10x more productive than the old “just Google around” paradigm of software development.
Fastmail
When I added the Beautiful Hugo theme to Hugo, I originally treated it as a Git submodule, which made it a secondary Git-managed unit under the Hugo theme subdirectory. After running into complexity headaches managing it this way, I switched to the much cleaner Hugo Module technique, which leverages the Go language module construct. To make this switch, however, required me to undo the Git submodule commits, and thankfully ChatGPT helped me navigate this process. Now, I have separation between my code and the framework and have the ability to update each independently, with Git management over only my code.