colophon · how this is made
How this site is built.
No framework, no CMS, no build step you'd recognise. What there is: a clear idea of how it should feel, an Obsidian vault, a small stack — and Claude, who wrote most of the actual lines. A site as a system, directed rather than hand-typed.
Directed, not hand-coded
Let me be straight about it: I didn't type most of this by hand. I designed it — the structure, the voice, the vermilion, every decision about how it should feel — and built it in conversation with Claude, which wrote the bulk of the HTML, CSS, and JavaScript. I'm a systems person; this little site is the system I'm fondest of. The craft here is in the direction and the taste, not in pretending I memorised flexbox.
It's still plain HTML, CSS, and vanilla JavaScript — no React, no Tailwind, no bundler. It loads fast because there's almost nothing to load, and it'll still open in a browser a decade from now because it asks nothing of one.
From a vault to the garden
The garden notes start their life in an Obsidian vault. A focused Python converter (publish.py, ~no dependencies) turns selected Markdown notes into styled pages — callouts, tables, [[wikilinks]], Tufte-style sidenotes and margin notes, backlinks, and the 🌱/🌿/🌳 growth stamps. I publish a curated subset by hand; the vault keeps its secrets. A few sibling scripts render a share card per note, build the full-text RSS feed, and sync what I'm reading straight from the vault.
The look
Set in Fraunces (with its wonk and soft axes nudged up just slightly), JetBrains Mono for the technical voice, and Newsreader for long reading. The palette is warm ecru paper and a dark mode, with one accent throughout — sindoor vermilion, #cf432a — and the signature offset-shadow frame.
Where it lives
All on a personal AWS account: a private S3 bucket behind CloudFront (locked down with Origin Access Control and a tiny function that resolves directory URLs), Route 53 for DNS, an ACM certificate for HTTPS-only. A single deploy.sh syncs the files and invalidates the cache. Traffic logs are privacy-friendly — no cookies, no third-party scripts, nothing following you around.
The details nobody asked for
Most of these, no one will ever notice. That's allowed.
type & feel
- Fraunces' WONK + SOFT axes — wonky, soft italics on the hero's systems; gentle warmth on the display headings.
- Ligatures & hanging punctuation site-wide, a faint paper grain over the ecru, and tonal section bands in light mode.
- Cross-page view transitions and a vermilion scroll-progress hairline at the very top.
the living footer
- Live Nepal ↔ Nashville clocks, ticking every ten seconds across Nepal's +5:45 offset.
- Real weather from a keyless API — °C for home, °F for here.
- A sky glyph that knows the hour — a rayed sun by day, and a true moon phase by night, computed in the browser from the date with no service behind it.
- Weather-driven rain — when it's actually raining in Biratnagar or Nashville, the footer rains, the sky turns to a cloud, and the odd bolt of lightning flashes.
easter eggs & touches
- A polyglot greeting in the hero, cycling through my languages.
- Paint mode 🎨 — hiding in a button (and in the portrait); it floods the site with the artwork's palette.
- A risk register that opens if you click the right full stop.
- Small manners — copy-email that says "copied ✓", a little wave in the tab title when you look away, and a note in the console.
- Sound — a guitar clip and whatever I've had on rotation, pulled from Spotify on a timer.
the garden
- Growth stamps (🌱 seedling, 🌿 budding, 🌳 evergreen) on every note.
- Backlinks, sidenotes & margin notes, and a "tended N days ago" that recomputes itself.
- A force-directed graph of the clusters, and seeds that unfurl a gloss on hover.
- A full-text RSS feed and a share card rendered for each note.
- type
- Fraunces · JetBrains Mono · Newsreader
- palette
- ecru paper / dark · sindoor vermilion #cf432a
- content
- Obsidian vault → publish.py → static HTML
- built
- designed by me · built with Claude · plain HTML/CSS/JS
- hosting
- AWS — S3 · CloudFront · Route 53 · ACM
- analytics
- privacy-friendly CloudFront logs · no trackers