Colophon

How this site is built, and why it looks the way it does.

Build

Static site generated with Astro. No framework runtime, no client-side router, no analytics. The only JavaScript that ships is a twenty-line theme switch. Pages are plain HTML by the time they reach you, which is why they open instantly on a slow connection, a design constraint that matters more in Nepal than it does in most places these are written about.

Content lives in markdown files and four YAML files in the repository. Adding a piece of writing means adding a file. There is no database and no admin panel to lock me out.

Type

  • Newsreader for headings and display, set at weight 500 with optical sizing on, so large sizes tighten automatically.
  • Inter for body text and interface, at 17px with a 1.65 line height.
  • JetBrains Mono for code, with the slashed zero enabled.

All three are self-hosted variable fonts, subset to the characters actually used.

Colour

A warm near-monochrome palette. The light ground is #fdfdfc and the dark ground is #111110: neither is pure white or pure black, because pure values make hairlines impossible to tune and put a hard edge on long reading. Body text is #21201c on light and #eeeeec on dark. One accent, a muted ink blue, appears in exactly three places: link underlines, the focus ring, and the current navigation item.

Themes follow your system setting by default. The toggle in the header overrides it in either direction and remembers your choice.

Accessibility

Text contrast exceeds WCAG AA throughout and AAA for body copy. Every interactive element has a visible focus ring. Motion, smooth scrolling and page transitions are all opt-in behind prefers-reduced-motion. There is a skip link, and the site is fully usable with JavaScript disabled.

Source

The code is on GitHub. Take anything from it that is useful.