Xin chào, tui là Khoi
A developer writing about web engineering, Astro, Cloudflare, and the craft of building lasting software. This is my digital garden — drafts and finished pieces, side-by-side.
Recent posts
9 posts-
Nana (aka Trio): the memory card game I keep reaching for
A hands-on review of Nana (aka Trio), the Japanese memory card game built around the number seven: why I bought it, how it actually plays, and the tactics I've picked up.
-
Top-down, bottom-up, and the way I actually build
I scrolled past a claim that innovation only happens bottom-up, got curious, and fell down a rabbit hole: what top-down and bottom-up actually mean, and how I oscillate between them.
-
The pseudo-elements running this blog — a dozen patterns I actually ship
Not a trick list. The drop cap on this page, the external-link arrow, the menu that won't snap shut — the real ::before/::after/::marker patterns I ship, and the accessibility trap each one hides.
-
Image pipeline demo (dev fixture)
A draft fixture that exercises every image kind — feature, cover, inline, and gallery — through the ADR-0014 build-time optimization pipeline. Never ships to production.
-
Why I built this blog
Every developer eventually builds their own blog. Here's why I built mine from scratch instead of reaching for a template — and what I'm actually hoping to get out of it.
-
Modern responsive design: the three-layer approach
Media queries alone are showing their age. Modern responsive design layers three techniques — fluid foundations, container queries, and media queries — each doing the job it's best at.
-
My daily phin: from green beans to the morning cup
A slow coffee ritual, start to finish — buying green beans, roasting them at home, and brewing a cup with the traditional Vietnamese phin filter every morning.
-
Build an accessible disclosure with details and summary
The native <details>/<summary> element is the most underrated component in HTML — a fully accessible show/hide toggle with zero JavaScript. Here's how to style it without breaking it.
-
How this blog renders Markdown
A living reference for every directive, plugin, and MDX component available when writing posts — what each one is, how to use it, and what it renders.