Pranish Bhagat

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

the living footer

easter eggs & touches

the garden

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