This site is written and maintained by Bryan O’Sullivan. It has been online in one form or another since 2003.
Visual design and type
My current system of type grew out of a prior pairing that I sat with for a few months, but felt better in theory than it looked on the screen. Tenor Sans gave my headings a faint Art Deco air that I didn’t love. I admire EB Garamond, but on the screen it felt too airy, calligraphic (a little hard to read), and historical beside a modern sans. I went on a hunt for openly licensed faces that were highly readable and beautifully drawn, but neither “top Google Fonts” defaults nor decorative curiosities.
I started with a search for a heading font. Schibsted Grotesk won a series of A/B comparisons for headings and navigation. It is compact, sober, and editorial, with a pleasingly Nordic character: more personality than a generic anonymous sans, but less chilly than a neutral neo-grotesk. Once it was in place, the unsuitability of Garamond became even clearer.
The hunt for a suitable body face took longer. I dallied awhile with Literata, but it had
distracting ligatures and annoyingly similar n and u forms in bold and italic. An experiment
with Chivo made the page feel too uniformly sans serif. Andada
Pro offered a pleasing balance: an
open, distinctive serif face that offered oldstyle figures, true small caps, fractions, super-
and subscripts, and a broad range of weights.
As pretty as it is, stock Andada was not quite polished enough for my purposes. Examining letter
pairs such as AV, DA, and To revealed inter-letter spacing that was too loose or simply
missing. Such pairs need to be kerned carefully so they don’t look like they’re staggering drunk
out of a bar at 2am, so I patched the font’s GPOS kerning tables. I audited whole families of
uppercase and capital–lowercase combinations, adding corrections where necessary. I renamed the
result Serpentine Andada to distinguish it from the upstream font.
JetBrains Mono feels like a good choice of code face (and
the one place where I was comfortable with a widely used face). Even so, it has a larger natural
x-height than Andada, so I’ve tried to match it with font-size-adjust, to allow inline code to
sit comfortably inside prose instead of looking badly scaled. I self-host all three families as
WOFF2 files, because Google Fonts (despite its convenience) has deficient versions of them.
The ornament at the top of this page is a fleuron, traditionally called a printer’s flower. The gold-and-black Hercules beetle in the favicon echoes the animal O’Reilly’s art department chose for the cover of Real World Haskell, and serves as the site’s informal printer’s device.
Making the site
The pages are written in Markdown and generated by Hugo. I began the design with PaperMod, and have since added custom templates, typography, navigation, and styles. The finished static site is served by Cloudflare.