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 in Git with assets tracked by
git-lfs
, hosted via soft-serve (a
lovely, self-contained Git + git-lfs self-hosting solution).
Text type is set in Inter and
headings in Space Grotesk,
both variable fonts to improve typographic flexibility and decrease page
weight. I use Fira 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. Assets are tracked by
git-lfs
, hosted via soft-serve (a
lovely, self-contained Git + git-lfs self-hosting solution).
The compilation process is a pile of custom TypeScript running on Node.js. The major 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 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.