Skip to content
// writing

Posts on development

A mix of technical deep-dives, career reflections, and dispatches from the road.

Subpath Imports With #/: The Path Alias Node Actually Understands thumbnail
developmentOct 22, 2026· 4 min
Subpath Imports With #/: The Path Alias Node Actually Understands
Node 24.14 and TypeScript 6.0 finally allow a bare #/ prefix in package.json imports. Here's how to replace tsconfig paths, Vite aliases, and post-build rewrites with one alias every tool reads.
read more →
React Fragment Refs: Attach Behavior Without the Wrapper Div thumbnail
developmentOct 19, 2026· 4 min
React Fragment Refs: Attach Behavior Without the Wrapper Div
React 19.3 made Fragment refs stable. Here's how FragmentInstance lets you listen, observe, and move focus across a group of elements without adding a wrapper div or touching child components.
read more →
CSS Gap Decorations: Divider Lines Without the Border Hacks thumbnail
developmentOct 18, 2026· 4 min
CSS Gap Decorations: Divider Lines Without the Border Hacks
Chrome and Edge 149 let column-rule and the new row-rule draw lines in grid and flexbox gaps, so you can delete the border and pseudo-element tricks you've been maintaining.
read more →
Svelte Error Boundaries: Contain the Crash Instead of Losing the Page thumbnail
developmentOct 15, 2026· 4 min
Svelte Error Boundaries: Contain the Crash Instead of Losing the Page
One flaky widget shouldn't blank your whole app. Here's how Svelte's boundary element walls off failures, shows loading UI for await, and now works during server rendering too.
read more →
Dependency Cooldowns: Make Your Package Manager Wait Before It Trusts New Code thumbnail
developmentOct 12, 2026· 4 min
Dependency Cooldowns: Make Your Package Manager Wait Before It Trusts New Code
npm, pnpm, Yarn, and Bun can all refuse package versions that are only hours old. Here's how each one's release-age gate works, why the units don't match, and where it bites in CI.
read more →
CSS Container Style Queries: Let the Parent Set the Theme thumbnail
developmentOct 11, 2026· 3 min
CSS Container Style Queries: Let the Parent Set the Theme
Container style queries hit Baseline in May 2026. Here's how to let a parent's custom property drive its children's styles, plus the one gotcha that trips everyone up.
read more →
Map.getOrInsert: Stop Writing the has/get/set Dance thumbnail
developmentOct 8, 2026· 3 min
Map.getOrInsert: Stop Writing the has/get/set Dance
Map and WeakMap now have getOrInsert and getOrInsertComputed, two methods that replace the check-then-set boilerplate every JavaScript codebase is full of.
read more →
Astro Live Content Collections: Fresh CMS Data Without a Rebuild thumbnail
developmentOct 5, 2026· 3 min
Astro Live Content Collections: Fresh CMS Data Without a Rebuild
Astro's live content collections fetch CMS and API data at request time with the same typed API as build-time collections, and Astro 7's route caching keeps them fast.
read more →
Nuxt createUseFetch: One Typed API Client Without the Wrapper Boilerplate thumbnail
developmentOct 4, 2026· 3 min
Nuxt createUseFetch: One Typed API Client Without the Wrapper Boilerplate
Nuxt 4.4 added createUseFetch and createUseAsyncData, factories that bake your base URL, auth headers, and error handling into a fully typed useFetch you can call anywhere.
read more →
Your tsconfig Is Still Written for TypeScript 5. Here's the Cleanup TS 7 Forces thumbnail
developmentOct 1, 2026· 4 min
Your tsconfig Is Still Written for TypeScript 5. Here's the Cleanup TS 7 Forces
TypeScript 6 flipped half a dozen compiler defaults and TypeScript 7 deleted the options it deprecated. Here's the tsconfig audit that gets you onto the native compiler without a wall of red.
read more →
// the newsletter
Don't miss the next one