Bun Runtime in Production: When I Replaced Node and When I Didn’t
I ran Bun in production for a year alongside Node. Here is where it actually replaced Node at runtime, where I switched back, and the…
I ran Bun in production for a year alongside Node. Here is where it actually replaced Node at runtime, where I switched back, and the…
Six months after I converted a 410-file Jest suite to Vitest, here is what got faster, what I had to rewrite, and where I still…
After ten weekends of telling myself it could wait, I swapped ESLint plus Prettier for Biome on a TypeScript monorepo. Real numbers, what broke, what…
I dragged my feet on Svelte 5 for nearly a year. Twenty months in, here is what I actually use across runes and snippets, plus…
I ran four repos for one product and lost Fridays to version-syncing. Here's how I think about monorepo vs polyrepo now, and when each setup…
TypeScript types vanish at runtime, which is how bad API and form data slips through. Here's how I use Zod to validate at the edges…
I moved from npm to pnpm six months ago and my node_modules went from 14GB to under 3GB. Here's what changed, where it bit me,…
React 19 forms, useActionState, and useOptimistic with before-and-after code. The features I actually kept after upgrading, and the one I'm still careful with.
Six TypeScript utility types that earn their keep in production, the hand-rolled types they replaced, and the clever ones I stopped using. Real code included.
I switched on the React Compiler in a real app and deleted most of my useMemo and useCallback calls. Here's what changed and where it…