This website is set in Filosofia, a font designed in 1996 by Zuzana Licko and published by Emigre. I’m a huge fan of Licko’s designs; they feel to me like avatars of an age. I also love the fact that Emigre funded its iconic magazine with the sale of digital fonts: one of the all-time great cross-subsidies.

Early in my design explo­rations for this site, I hopped over to inspect a few Emigre fonts I’d bookmarked — but none of them were Filosofia. In the past, fonts of this style struck me as stuffy and old-fashioned; depart­ment store fonts. But tastes change, and ambitions do, too. It’s easy and predictable to set a site like this in a sleek sans serif; I wanted to try something new. So, when my tour of the Emigre collec­tion landed me on Filosofia, I saw it with fresh eyes.

Then, when I opened the PDF specimen, those eyes widened.

Go ahead: look for yourself.

Could I, at that point, have chosen any other font? No way.

This site also uses Trade Gothic Next, Akira Kobayashi’s 2008 revision of Jackson Burke’s 1947 design. I love fonts of this style, called “grotesque”. It was years ago that I learned the Star Wars opening crawl is set in, of all things, News Gothic, and that cracked it open for me.

The site’s background is cosmic latte, the average color of the universe.


This website is managed using Middleman, a static site gener­ator that’s simple and flexible and, most importantly, written in the Ruby program­ming language, which is the one I know best. That means I can gener­ally make Middleman do what I want.

The site is hosted on Cloudfront, part of Amazon Web Services. Cloud­front keeps copies of the site close to readers around the world; it’s like having a copy of a book in your local library. The speedup is very slight, fractions of a second, but those fractions are perceptible; they do matter.

A few scraps of support code run as Google Cloud Functions, all of them written in Ruby and Google’s Functions Framework, which is a real pleasure to use.

I send emails using Mailchimp. Its inter­face is in no way designed for a user like me, so I operate it mainly through its API, chore­o­graphing messages with a simple Ruby script that I run on my laptop.

You might have picked up on the fact that I like Ruby; in fact, it is the great love of my program­ming life. Its creator, Yukihiro Matsumoto, once expressed Ruby’s philos­ophy like this:

For me, the purpose of life is, at least partly, to have joy. Program­mers often feel joy when they can concen­trate on the creative side of program­ming, so Ruby is designed to make programmers happy.

This site doesn’t collect any infor­ma­tion about you or your reading. I do track the open rates of the email notifi­ca­tions I send through Mailchimp; that’s both to monitor for technical problems and remove subscribers who haven’t opened my messages in many years. I’m ambiva­lent about even this level of instrumentation, but/and, for me, it’s balanced against the publisher’s imper­a­tive not to spam the world with material, physical or digital, that is unwanted and unread.

Style guide

I’m noting a few sitewide prefer­ences here, mostly for myself:

Assumed audiences

Here and there, I use the term “assumed audience”, cribbed from Chris Krycho. For example, look at these two posts of his — one, two—with little placards up top making it clear they are aimed at different groups of readers. Those groups might overlap! They might also: not.

I liked Chris’s placards as soon as I saw them; I appreciate the way they push back against the “context collapse” of the internet, in which every public post is, by default, addressed to everyone.

Many websites provide this bulwark themselves; an article posted on Work Truck is automat­i­cally pretty well situated. But that’s not the case for material on a personal site with many cross-cutting interests, and readers who arrived for many different reasons. I can only report that I’ve often felt a tension between

I think both impulses are good, actually, but they’re not always totally compatible. The tension is ongoing; it’s close to the core of what writing is. Maybe being explicit about the assumed audience for certain newslet­ters will be helpful. We’ll see!

And it goes without saying: just because you’re not part of a newsletter’s assumed audience doesn’t mean you shouldn’t give it a look 😇

July 2021, Oakland