Skip to content
// writing

Posts on development

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

node --test: The Test Runner You Already Have Installed thumbnail
developmentSep 10, 2026· 4 min
node --test: The Test Runner You Already Have Installed
Node's built-in test runner has been stable since v20 and now handles mocking, coverage, watch mode, and TypeScript files. Here's what it does well and where it still falls short.
read more →
Svelte Snippets: Reuse Markup Without a New Component thumbnail
developmentSep 7, 2026· 4 min
Svelte Snippets: Reuse Markup Without a New Component
Snippets let you define reusable chunks of markup inline and render them like functions. They replace slots, kill the let: directive, and mean you stop extracting a component every time you repeat six lines.
read more →
CSS scroll-state() Queries: Styling Stuck, Snapped, and Scrollable thumbnail
developmentSep 6, 2026· 4 min
CSS scroll-state() Queries: Styling Stuck, Snapped, and Scrollable
Sticky headers, snapped carousel slides, and scroll shadows have all been JavaScript jobs for a decade. Scroll-state container queries hand that work back to CSS.
read more →
Async Svelte: Using await Directly in Your Components thumbnail
developmentAug 30, 2026· 4 min
Async Svelte: Using await Directly in Your Components
Svelte 5.36 lets you use await at the top level of a component, inside $derived, and in your markup. Here is how synchronized updates, boundaries, and $effect.pending() fit together.
read more →
The Web Locks API: One Tab Does the Work, the Rest Wait thumbnail
developmentAug 27, 2026· 5 min
The Web Locks API: One Tab Does the Work, the Rest Wait
Your app already runs in five tabs at once, and they all think they are in charge. The Web Locks API gives the browser a real mutex so only one of them does the work.
read more →
Form-Associated Custom Elements: Web Components That Belong in a Form thumbnail
developmentAug 24, 2026· 4 min
Form-Associated Custom Elements: Web Components That Belong in a Form
Custom elements can be real form controls. Here is how formAssociated, ElementInternals, and setValidity retire the hidden-input hack for good.
read more →
Next.js Partial Prefetching: One Shell Per Route, Not One Per Link thumbnail
developmentAug 23, 2026· 4 min
Next.js Partial Prefetching: One Shell Per Route, Not One Per Link
Next.js 16.3 stops firing a prefetch request for every link in the viewport and caches one reusable loading shell per route instead. Here's what changes and how to turn it on.
read more →
Declarative Partial Updates: Out-of-Order HTML Streaming Without a Framework thumbnail
developmentAug 20, 2026· 4 min
Declarative Partial Updates: Out-of-Order HTML Streaming Without a Framework
Chrome 148 ships experimental support for filling HTML placeholders out of order and streaming markup into the DOM. Here's how the new template-for and streamHTML APIs work, and what they replace.
read more →
React's Activity Component: Hide UI Without Losing Its State thumbnail
developmentAug 17, 2026· 4 min
React's Activity Component: Hide UI Without Losing Its State
React 19.2's Activity component hides a subtree instead of unmounting it, so state, scroll position, and DOM survive the round trip. Here's how it behaves, what it does to your Effects, and where it costs you.
read more →
revalidateTag vs updateTag: Next.js Split Cache Invalidation in Two thumbnail
developmentAug 16, 2026· 4 min
revalidateTag vs updateTag: Next.js Split Cache Invalidation in Two
Next.js 16 gave cache invalidation two different functions instead of one, and the split maps to a real distinction: content that can lag versus content the user just typed.
read more →
// the newsletter
Don't miss the next one