// writing
Posts tagged #web-apis
A mix of technical deep-dives, career reflections, and dispatches from the road.
tag: #web-apis

developmentSep 27, 2026· 4 min
Compression Dictionaries: Ship Only the Diff When Your Bundle Changes
Compression Dictionary Transport (RFC 9842) lets the browser tell your server which cached file it already has, so a redeployed bundle can arrive as a few-kilobyte delta instead of a full download.
read more →

developmentSep 24, 2026· 3 min
Uint8Array toBase64 and toHex: Stop Round-Tripping Bytes Through btoa
JavaScript can finally turn bytes into base64 and hex (and back) without the String.fromCharCode and btoa dance. Here's how Uint8Array's new encoding methods work and where they replace the helpers you've been copy-pasting.
read more →

developmentSep 14, 2026· 3 min
WebNN: The Only Web API That Can Reach Your NPU
Almost every laptop shipped in the last two years has a neural processing unit sitting idle. WebNN is the only web standard that can actually talk to it…
read more →

developmentSep 13, 2026· 3 min
GraphQL @oneOf: Exactly One Input, Enforced by the Schema
OneOf Input Objects landed in the September 2025 GraphQL spec, which means the exactly-one-of-these-arguments rule you've been enforcing in resolver code is…
read more →

developmentSep 6, 2026· 3 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.
read more →

developmentAug 27, 2026· 4 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…
read more →

developmentAug 24, 2026· 3 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 →

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.
read more →

developmentAug 16, 2026· 3 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…
read more →

developmentAug 10, 2026· 3 min
Trusted Types Is Baseline: DOM XSS Is Now a Type Error
Firefox 148 shipped Trusted Types in February 2026, making it Baseline. Here's how to turn every dangerous innerHTML assignment in your app into a TypeError…
read more →
// the newsletter