Colophon

My web site is one of my favorite yaks. There are many like it, but it is mine.
I build it as a static site published on a small machine hosted by Tornado and ultimately served by
Bunny CDN. Content & compiler source are in Git with assets tracked
by git-lfs
, hosted via soft-serve (a
lovely, self-contained Git + git-lfs self-hosting solution). Laminar orchestrates builds and
deployments.
Text type is set in Inter and headings in Space Grotesk, both variable fonts to improve typographic flexibility and decrease page weight. I use GFS NeoHellenic Math for MathML (some pages render math with KaTeX, which uses its fonts) and Hack for code / monospace text. The color scheme is my own scheme inspired by Flexoki and developed with Atmos.
The compilation process is a pile of custom TypeScript running on Node.js. The major tools and libraries I use include:
- Pandoc content processing.
- JSDOM for reprocessing HTML.
- Hyperstatic for generating HTML (overall page layout and both server- and client-side page components; layout templates are in TSX using Hyperstatic’s JSX support).
- hbsinterp, my non-compiling [Handlebars][] interpreter, for templating page content.
- [SASS][] to make CSS more usable.
- esbuild to bundle client-side JavaScript.
- Sharp to process images.
- UnPDF to extract and index PDFs.
- Pagefind to implement site search.
One of the particularly cool features of this setup is my publication pages: each publication has a page written in Markdown; YAML metadata in the page serves as single-source-of-truth for my publications across the whole site. My CV is updated from this data, as is my publication list and other places where publications show up (project pages, blog posts, etc.). Citation statistics are automatically updated nightly.
I use Typst to generate my CV, using a custom theme and citation data extracted from publication pages. Those pages serve as single-source-of-truth for publication data across my entire website and CV.
Icons are from the excellent Noun Project.
I don’t make the Git repository and history of my website public, but am happy to share upon request with people interested in seeing the code.