Skip to content
Philip Ilic Thomas
ContraptionWorkshopPostcardTsundoku

Colophon

Typographical

Three typefaces from Klim Type Foundry in Wellington, New Zealand.

Söhne is the sans-serif for headings, navigation, and interface elements. Book and semibold weights, with italics for both.

Tiempos Text is the serif for body copy and long-form prose. Book weight with italics.

Söhne Mono is the monospace for code blocks, dates, and metadata. Book and semibold weights.

Technical

The site is a Next.js application with MDX content, statically generated at build time and hosted on Vercel. Search runs on a local index committed to the repository, combining BM25 keyword matching with Google Gemini Embedding 2 vectors. Bell and photo search use the full hybrid path. Typeahead shows BM25 matches first, then fills any open slots with hybrid results.

Email delivery runs through AWS SES, and text messages run through Twilio. Bell conversations are stored first-party in Neon with channel-specific retention, while model requests route through Vercel AI Gateway. Vercel Web Analytics and Speed Insights record aggregate, cookieless traffic, feature-use, and performance data. Custom events use a fixed, low-cardinality vocabulary and exclude message text, search text, contact details, and conversation identifiers.

Style guide

Rules I try to follow when writing, except when an intentional break gives the piece more life:

  • Embrace idiosyncrasy: keep personality, quirks, texture, and deliberate rule breaks when they make the writing more itself
  • Active voice
  • No contractions
  • No em dashes (use other punctuation instead)
  • Never use the word "very"
  • Avoid exclamation points
  • Oxford commas (always use the serial comma)
  • Sentence case for titles
  • Do not use "+" in place of "and"
  • No redundant questions
  • Dates in ISO-8601 format
  • "Data" are plural
  • Units in metric, temperatures in Celsius
  • Assume international readers (country codes on phone numbers, country in addresses)
  • Never use the structure "it is not (this), it is (that)"
  • Avoid the royal "we"
  • Prefer "people" to "users" when the human context matters
  • Italicize newsletter names (Postcard, Contraption, Workshop)