levineuwirth.org/content/colophon.md

205 lines
9.7 KiB
Markdown

---
title: Colophon
date: 2026-03-21
modified: 2026-03-21
status: "Draft"
tags: [meta]
abstract: On the design, tools, and philosophy of this site — and by extension, its author.
---
::: dropcap
A personal website is not a publication. It is a position. A publication presents work
in a finalized, immutable state, and carries with it some sort of declaration - "this is my most polished and prized work!";
a position is something you inhabit, argue from, and occasionally
revise in public. Every design decision on this site — the typeface, the build system,
the absence of tracking, the presence of confidence scores — encodes a value. This page
explains those values, and why they took the form they did.
What follows is a colophon in the grand old sense: a printer's note at the end of the book,
recording how it was made, who made it, etc. The difference: here, the
printer and the author are the same person, and the process of making is itself not only *a* form
of argument, but *the only* form of argument permitted.
:::
---
## Typography
::: dropcap
You are reading this sentence in SPECTRAL, which is not only a font with particular personal importance to me, but also an exceedingly pleasing font to read.
:::
[TODO: The [OpenType]{.smallcaps} features — `smcp`, `onum`, `liga`, `calt` — and why
self-hosting is required to use them.]^[Google Fonts strips OpenType features during
subsetting for bandwidth. Self-hosting with `pyftsubset` preserves `smcp` (small
capitals), `onum` (old-style figures), `liga` (common ligatures), and the full optical
size range. The difference is visible: old-style figures sit on the baseline rather
than hanging above it, small capitals are drawn to match the x-height rather than being
shrunken full caps, and ligatures prevent collisions in letter pairs like *fi* and *fl*.]
[TODO: Fira Sans for [UI]{.smallcaps} and headers. What humanist warmth means in a
sans-serif and why it pairs well with Spectral. JetBrains Mono for code — code should
look like code.]
The monochrome palette is a discipline. Color is often used to do work that typography
should do: distinguishing hierarchy, marking emphasis, signaling state. When those
functions are handled by weight, size, and spacing instead, color becomes available
for the things it cannot be substituted for — and on a site with no data visualizations
requiring color encoding, those things turn out to be very few.^[The one exception is
the heatmap on the statistics page, which uses a four-step greyscale scale. Even there,
the encoding is luminance rather than hue.]
---
## The Build
::: dropcap
[TODO: Hakyll and Pandoc. Why Haskell. The compile step as philosophy — this site is
a program and the content is the source code. The analogy to compiled software: readers
receive a deterministic artifact, not a runtime rendering decision.]
:::
[TODO: What Pandoc [AST]{.smallcaps} filters do. The filter chain: wikilinks →
preprocessor, then sidenotes, smallcaps, dropcaps, links, images, math. All
transformation before the reader arrives.]^[The full pipeline: Markdown source →
Pandoc [AST]{.smallcaps} → citeproc → filter chain (sidenotes, smallcaps, dropcaps,
wikilinks, external link classification, responsive images) → HTML. Complex math goes
through a second pass: KaTeX renders server-side at build time, producing static
[HTML]{.smallcaps}+MathML. No math rendering happens in the browser.]
[TODO: The semantic search model — self-hosted [ONNX]{.smallcaps} weights served
same-origin, no external [API]{.smallcaps} calls. Why this matters for the site's
privacy posture.]
[TODO: Build telemetry — pointer to `/build/` and `/stats/` for the empirical picture.
This section covers intent; those pages cover state.]
---
## The Computing Environment
::: dropcap
[TODO: The organizing principle for this section: configuration is code, privacy is
a first principle, tools should be earned rather than merely used. These are not
preferences but positions, and this site is downstream of them.]
:::
### Desktop
[TODO: Gentoo Linux, Hyprland, Levshell (custom shell via Quickshell). Why Gentoo:
compilation for performance, fine-grained [USE]{.smallcaps} flag control, the
community. Why Hyprland: tiling window management as a productivity commitment.
[AMD]{.smallcaps} hardware throughout.]^[The personal computing setup is documented
in greater depth on the [[Me]] page. This section focuses on what is directly
relevant to how this site is built and maintained.]
### Laptop
[TODO: Arch Linux on ThinkPad P-series. Why Arch rather than Gentoo on battery-
constrained hardware. The continuity of the Hyprland environment across machines —
the same keybindings, the same visual language, the same muscle memory.]
### Editor
[TODO: Emacs. Everything written and coded in Emacs. The relationship between the
editor and the content — writing Markdown in Emacs with a Hakyll watcher running is
as close to a [WYSIWYG]{.smallcaps} experience as the workflow gets.]
### Privacy-First Computing
[TODO: Self-hosted email and [VPN]{.smallcaps}. LibreWolf over Firefox (the Chromium
monopoly and Mozilla's drift). GrapheneOS. The principle: privacy as a first principle
means building the infrastructure first, not bolting on settings after. The same
principle applies to this site — no tracking is not a policy decision, it is an
architectural one.]
---
## [AI]{.smallcaps} and This Site
::: dropcap
This site was built in collaboration with Claude. The Pandoc filters, the [CSS]{.smallcaps},
the JavaScript, the Hakyll build system — much of the infrastructure emerged from an
iterative dialogue between author and model. This is worth stating plainly, because
the site's content argues for a specific position on [AI]{.smallcaps} use, and that
position is most legible when the colophon is honest about where it was and was not applied.
:::
[TODO: The augmentation/automation distinction made concrete. Building the
infrastructure that hosts original thought is different from generating the thought.
The Pandoc filter that transforms footnotes into sidenotes was written with Claude;
the footnotes themselves were not. The CSS that sets the typeface was written with
Claude; the prose set in that typeface was not. The distinction is the point.]
[TODO: What this means for the site's claims to originality. The content — the essays,
the compositions, the poetry, the research — is entirely Levi's. The medium was built
collaboratively. This is the same relationship a writer has with an editor, a compositor,
or a press operator: the vehicle is shared work; the voice is not.]^[The model used
throughout is Claude (Anthropic). The full git history is publicly available and
records what was changed when, which is a more honest account than any prose summary.]
---
## Design Decisions
### Sidenotes
[TODO: The Tufte influence — *Envisioning Information*, the three-column layout, the
argument that footnotes interrupt reading in a way that marginalia does not. The
sidenote as a first-class typographic element rather than a concession to citation
convention. Credit: Said Achmiz for the sidenote positioning [JS]{.smallcaps} (the
implementation used here is a simplified fork).]
### No Tracking
The site has no analytics, no visit counters, no fingerprinting, and no third-party
scripts.^[This is enforced at the nginx level via [CSP]{.smallcaps} headers, not just
by omission. The Content Security Policy prevents any script not explicitly whitelisted
from executing. The whitelist is short.] The reason is not only privacy, though privacy
is sufficient. The deeper reason is that knowing your readership changes what you write
for it — gradually, invisibly, in the direction of whatever the metrics reward. A site
without metrics cannot optimize for them. This is a feature.
### Living Documents
[TODO: The epistemic metadata system — `status`, `confidence`, `modified`, `importance`.
What each field means. Why marking `status: Ongoing` on a document matters: it is an
honest claim about the document's relationship to the author's current thinking, rather
than the implicit permanence that publication usually signals. The modified date is
not decorative; it is the reader's primary signal for whether to treat a document as
settled or in flux.]
---
## Influences
[TODO: gwern.net — the primary architectural and philosophical ancestor. What was
taken (sidenotes, living documents, epistemic metadata, semantic zoom, the long-form
personal essay as the primary unit). What was changed (visual register — gwern's
monochrome is denser; this site is more spacious — and scope).]
[TODO: Tufte — *Envisioning Information* and *The Visual Display of Quantitative
Information*. The three-column layout, the sidenote tradition, the principle that
good typography is invisible.]
[TODO: The personal website tradition more broadly — the early web's culture of
idiosyncratic personal pages before social media collapsed everyone into the same
templates. This site is partly an argument that that culture was worth having.]
---
## The Future
This site is unfinished. Several portals have no content yet. The annotated bibliography
is sparse. Some pages are marked `status: Stub` for good reason. This is acknowledged
rather than concealed, because a site that presents itself as complete when it is not
is making a false claim about the relationship between the author and the work.
[TODO: Specific things that are in progress — content migration, the library portal,
the fiction and research portals as the corpus grows. The Recently section on the
homepage, deferred until the corpus supports it.]
The colophon itself is a living document. When the site changes substantially, this
page will change with it. The git history is the authoritative record; this page is
the annotated summary.