Colophon
This site is hosted on an OpenBSD server on vultr, built using plain text files processed by soupault and auto-rsync’d to the server as part of a pre-commit hook.
The source files are available on my git server and GitHub.
I also use entr (on Nix) or caretaker (on Arch) during development to auto-rebuild as I edit the source files.
Regarding the design, the focus is on simplicity and a small footprint. It’s the kind thing to do, for the user and the planet. No Javascript, just static HTML. I used to specify fonts, e.g. one of my favorites, IBM Plex, but in an effort to keep things light and tidy, I now just use system fonts.
https://talks.beauhilton.com and https://notes.beauhilton.com are not part of the website proper, but are rather generated using GitHub Pages. The talks are built using slidev, which translates markdown files into beautiful web-first slide decks (I now only use PowerPoint under great duress), and the notes use quartz, which translates Obsidian-style markdown files (see a theme here?) into a website of interconnected notes a la Zettelkasten.
Nix Workflow
As of 2023-10-10 or so, I use a Nix-based workflow with flakes and devenv.sh. The basic steps are similar to what is included below in the Non-Nix section, though more conveniently packaged and portable.
It’s delightful.
I may write it up at some point, but for now, look at flake.nix in the source code. One of the great things about Nix is that it’s self-documenting and self-contained.
On my non-Nix laptop running Arch, I still use the workflow below, though at some point I’ll probably install Nix on Arch and unify my approach.
Non-Nix Workflow
The workflow is terminal-based and pretty basic.
It amounts to:
cd src/site
./sh.sh
$EDITOR site/gulag_archipelago.md
sh.sh
contains the following:
$TERMINAL -e caretaker &>/dev/null & disown
$TERMINAL -e python3 -m http.server --directory build &>/dev/null & disown
$TERMINAL -e $BROWSER http://localhost:8000 &>/dev/null & disown
This will open three new terminals running: a caretaker instance for auto-rebuild (I recently activated caching in soupault, rebuilds are lightning quick), a web server for preview, and a browser pointing to the server.
At that point I will usually throw the terminals running the server
and caretaker
to another desktop to achieve a clean editing
environment.
When it’s ready to go live, I use an alias called glazy
:
git add . && git commit -m "update" && git push
.
This will trigger the pre-commit hook, which rebuilds the site again and
activates rsync to send the built site to the web server, before pushing
the source files to GitHub and my git server.