How this garden is built — and why it's so small
🌲 evergreenupdated 2026-06-23#meta#minimalism#bun#web#privacy
A colophon — notes on how this garden runs, and the small, stubborn choices behind it. By Long Nguyen (olragon).
Tiếng Việt: Khu vườn này được dựng thế nào.
People ask why a personal site needs a "stack" at all. Mostly it doesn't. This one is built on a single idea: the whole thing should fit in my head. If I can hold every moving part at once, I can tend it like a garden instead of maintaining it like a machine.
So I keep subtracting. Here is what's left, and why.
One runtime, no framework
It used to be Astro + React + Tailwind + MDX + Vite. All good tools — and all scaffolding I was carrying for a site that renders a little text. So I tore them out. Now it's one Bun.serve file that renders HTML on request and transpiles the small bit of client code on the fly. Zero dependencies. No build step, no node_modules to rot, nothing to npm audit. Deploy is rsync and a restart.
The payoff isn't speed for its own sake. It's that nothing sits between me and the page. When something breaks, there's one file to read.
Native HTML5, plain CSS
The markup is semantic HTML — headings, lists, articles, figures — styled with a single hand-written stylesheet. The few interactive bits (a language morph, a counter) are vanilla web components, no framework runtime. The browser already knows how to do almost everything; I try not to argue with it.
System fonts, no CDN
No web fonts, no font CDN, no <link> to someone else's server. The site uses whatever serif and mono your device already has. That's one fewer network request, one fewer thing to wait for, and — this matters to me — one fewer company watching you read. A page from this garden loads three files, all from this domain.
Zero third-party analytics
No Google Analytics, no tag manager, no pixels. I even removed the host's own automatic analytics beacon, so nothing phones home when you visit. I don't know who you are, and I'd like to keep it that way. If the footer says "no trackers," it has to be literally true.
A tiny machine
The whole thing lives on a 256 MB virtual machine that idles around 98 MB, with the server process itself near 43 MB of memory. I didn't shrink it to save money — it's a rounding error either way. I shrank it because smallness is legible. A machine I can describe in one sentence is a machine I actually understand.
Why bother
Because most of the web is heavier than it needs to be, and heaviness has a cost you don't see on the bill: it's slower, more fragile, more surveilled, and harder to love. A garden is the opposite of that. It's small on purpose, tended by hand, and built to outlive the frameworks it could have been written in.
Maybe I'm over-optimizing for a site almost nobody will read. Probably. But the constraint is the fun part — and a thing you fully understand is a thing you'll still be tending in ten years.