For fifteen years, every client-side router in JavaScript has been built on top of history.
Something unusual happened in browser-land: Chrome, Safari, and Edge shipped the same new API within weeks of each other last fall.
Chrome 148 quietly ships a 4.27 GB language model — Gemini Nano — to every desktop installation.
Every project I've touched in the last five years has a file somewhere — maybe lazyVideo.js, maybe useMediaObserver.
For years, "verify your identity" on the web meant taking a photo of your driver's license with your webcam, uploading it to some third-party...
Nine years.
Every design system I've worked on has some version of the same function. Maybe it's called getContrastColor().
Back in 2019, Chrome 76 shipped loading="lazy" for images, and the web performance crowd collectively exhaled.
Five lines of JavaScript. That's what it takes to translate text in Chrome now — no API key, no cloud endpoint, no third-party library.
For fifteen years, positioning a tooltip above a button required a JavaScript library.
The Digital Credentials API quietly hit stable across all three majors over the last six months, and the JavaScript surface is refreshingly boring — a single...
Chrome 142 introduced the Local Network Access permission prompt last year, and most developers shrugged.
Every few years the browser picks up a capability that reshuffles where smart people run their code. WebGL did it for 3D.
Every web app that accepts user HTML has the same dependency buried somewhere in its node_modules: DOMPurify.
Temporal reached TC39 Stage 4 on March 11. It's in the ES2026 spec.