What is this garden built from, and why so small?
🌲 evergreenplanted tended #meta#minimalism#bun#web#privacy
Written for Anyone curious what runs this site, or about to build a small site of their own.
A colophon — notes on how this garden runs, and the small, stubborn choices behind it.
Tiếng Việt: Mảnh vườn này dựng bằng gì, mà sao lại nhỏ vậy?.
I rebuilt this site three times in two years, and each time it was because I got bored of what I had just built. This time I took things away instead of adding them.
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.
Why there's 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.
What this page is made of
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.
Why there are no web fonts
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.
Am I measuring you
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.
What size machine it runs on
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.
What's the point, then
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.
Write papa dragon a letter
If this note stirred something, write to me here. A letter reaches only me and never shows up on the page by itself. If one is lovely and you allow it, I may quote it under the note, without your name.
Works from a terminal too: curl -d 'msg=…' olragon.com/garden/colophon-en/letter