notes

About

First published: Last updated: 948 words

About me

I work at Epoch AI, where I am in charge of automating the organization’s workflows. Previously, I was executive director of Tlön, a small nonprofit that translates content related to effective altruism, existential risk, and related topics. I am also a co-host of the podcast La bisagra de la historia and a member of the Samotsvety forecasting group. I used to write a newsletter together with Matthew van der Merwe. Claude describes me as “a prickly, hard-to-please intellectual.”

I’ve been part of the effective altruism community since its inception and have collaborated with several EA orgs and people over the years. As Will MacAskill’s research assistant, I was responsible for much of the background research that went into Doing good better.

Some of my other interests and hobbies include modern and classical languages, tango dancing and DJing, interior design, Borges, and wasting time on my Emacs configuration.

Feel free to get in touch. You can also find me on the Effective Altruism Forum, Metaculus and LessWrong, though I am no longer active on those platforms.


About this site

Static site generator

The site is powered by Hugo, with a custom theme built from scratch. Hugo generates the entire site as static HTML, CSS, and a small amount of vanilla JavaScript—no frameworks, no build-time bundlers, no client-side rendering. The result is fast, portable, and easy to reason about.

Content authoring

All content is authored in org-mode and exported to Hugo-compatible Markdown via ox-hugo. Each note or quote is its own .org file. The export is one-post-per-file: each org file maps to one Hugo content page.

(I write and edit everything in Emacs. See my Emacs config for details about my setup, and my Emacs packages for a list of packages I’ve developed to support my workflows.)

Content sections

The site has three content sections:

  • Notes: A digital garden of miscellaneous notes, organized like a wiki. Notes are interlinked and discoverable through backlinks rather than tags or categories.
  • Quotes: A diary of quotes, displayed as a reverse-chronological feed. Each quote is attributed to a work via a bibliographic citation.
  • Works: Auto-generated bibliographic entry pages for every cited work. Each work page lists the notes and quotes that reference it.

Org-roam manages the note graph. Every note has a unique identifier, and links between notes are tracked in an org-roam SQLite database. A pre-build script queries this database and generates a JSON file mapping each note to the set of notes that link to it. Hugo then renders these backlinks at the bottom of every note page.

Citations

All citations are handled by org-cite with a custom export processor that emits Hugo shortcodes. These shortcodes resolve against a set of shared BibTeX files (.bib) containing the bibliographic data. Each cited work gets its own page under /works/, generated automatically from the BibTeX entries.

Features

Client-side search is provided by Pagefind. The search index is built at deploy time and runs entirely in the browser—no server or third-party service needed. Search can be triggered from the header icon, the / key, or Cmd+K.

Internal links show Wikipedia-style popup previews on hover. The preview fetches the target page and displays a snippet of its content, making it easy to follow the note graph without leaving the current page.

Sidenotes

Footnotes are rendered as sidenotes in the margin on wide screens. On narrower viewports, they collapse back to standard inline footnotes.

Table of contents

Longer notes include a floating table of contents in the sidebar with scrollspy highlighting, so the reader always knows where they are in the document. A compact inline TOC also appears at the top of the page.

Dark mode

The site supports light and dark color schemes. A three-state toggle in the header cycles between light, dark, and system preference. The choice is persisted in localStorage.

Math rendering

Mathematical notation is rendered by KaTeX, loaded conditionally only on pages that contain math delimiters.

Syntax highlighting

Code blocks use Hugo’s built-in Chroma highlighter, with separate light and dark stylesheets.

Transclusion

Notes can include content from other notes or from bibliographic sources via org-transclusion. A #+transclude: directive in the org source pulls in the referenced content—typically a quoted passage from a work—so that it appears inline in the published note, indistinguishable from text written directly in the file. This keeps quotations in a single canonical location while allowing them to surface wherever they are relevant.

Section dividers

Horizontal rules are rendered as ornamental dinkuses—small decorative SVG glyphs drawn randomly from a set of five designs. The assignment is deterministic: the same section break always gets the same ornament.

PDF previews

Work pages display a clickable thumbnail of the first page of the associated PDF, when available. The thumbnails are generated automatically from the BibTeX file field by a pre-build script.

RSS feeds

Separate RSS feeds are available for notes and quotes, each including full content.

Design

The visual direction is minimalist, elegant, and academic. The layout is single-column and centered, optimized for comfortable reading.

The body text is set in Source Serif 4, a variable serif typeface designed for reading long-form text. Line length is capped at roughly 65–75 characters.

Deployment

The site is hosted on Netlify. There is no CI/CD pipeline from git pushes—all deploys are triggered manually by a deploy script. The script builds the Hugo site, generates the Pagefind search index, and pushes the result directly to Netlify via CLI.

Companion Emacs package

A companion Emacs package, stafforini.el, provides a menu-driven interface for the entire build pipeline: exporting notes and quotes, regenerating work pages and backlinks, starting the development server, and deploying. This keeps the full authoring-to-publishing workflow within Emacs.