Blog
Thoughts on software engineering, open source, and projects I'm building.
A practical guide to setting up Ant Design 6 with React, TypeScript, and Vite — covering the new CSS variables architecture, semantic DOM, theming, forms, tables, and bundle optimization.
From generic hooks to generic API clients — how infer, extends, and conditional types eliminate any in real code.
An honest comparison between Astro and Next.js for content-first sites — performance, architecture, developer experience, and when to choose which.
Nix is not just a package manager or an OS. It is a better nvm — declarative, deterministic, and per-project Node.js versioning without shell hacks or manual switches.
How I structure reusable logic with custom hooks — from useDebounce to useLocalStorage.