I was thinking about this blog and how it’s set up. I covered the setup in a previous post, but it’s quite simple: the site is generated from markdown files with hugo and published to git. The server pulls from git on a schedule, rebuilds it and copies it to the web server directory.
I made a little experiment with a different approach source. Instead of statically generating the site, it’s a Single Page Application which does the templating and routing on the client side. In theory this has a couple of upsides: if you visit multiple pages fewer bytes are transferred overall, and it totally removes the static site generation step; the folder is all just static content provided to the web server. This approach likely has some downsides too, like; requires javascript enabled client, no RSS feed or sitemap generation, and my implementation at least is relying on some fairly modern JS features like async/await and fetch API.