All bands
Web Performance
Performance engineering for the modern web: Core Web Vitals, asset pipelines, caching strategies, and frontend optimization.
22 STATIONS ON THIS BAND
Medium wave · 540–1600 kHz22 stations stn
Inline SVG Icons Ship With Every Page
Your icon component pastes the same path data into every HTML file you build. For site chrome, one cached sprite beats a thousand inline copies.Web Performance · Static Architecture · Astro
Critical CSS Extraction Solves a Problem You Don't Have
Critical CSS tooling guesses a viewport, duplicates your rules, and breaks your CSP. On most static sites the whole stylesheet is smaller than the fix.Web Performance · Static Architecture · Astro
Your Accordion Doesn't Need JavaScript
Accordions, disclosures, dropdowns, and modals are now HTML. Shipping a hydrated component for them buys you bugs the browser already fixed.Static Architecture · Web Performance · Astro
The sizes Attribute Is a Promise About Your CSS
The browser picks a srcset image before it has read your CSS. The sizes attribute is the only layout hint it gets, and most sites let it drift.Web Performance · Static Architecture · Astro
Prerendering Runs Your Page Before Anyone Arrives
Speculation Rules make navigation instant by running the next page early. Every script that assumes a visitor is present is now wrong.Web Performance · Static Architecture
Barrel Files Are a Tax on Every Import
An index.ts that re-exports everything makes imports look tidy and makes every consumer pay for the whole folder. Here is where the bill shows up.Developer Experience (DX) · TypeScript · Web Performance
client:load Is Almost Always the Wrong Directive
Astro makes JavaScript opt-in, then most projects opt in with the most expensive directive by reflex. Here is the ladder to climb before you reach for it.Astro · Web Performance · React
The Back Button Is Your Fastest Page Load
The back/forward cache restores a page instantly, with zero requests. One stray unload handler or no-store header quietly turns it off.Web Performance · Static Architecture
Your Service Worker Outlives Your Deploy
A deploy replaces every file at the edge in seconds. A service worker keeps serving the old build from a machine you will never touch again.Web Architecture · Static Architecture · Web Performance · Signal vs Noise
An Embed Is Not a Component
A third-party embed is a second website loaded into yours, with its own dependency tree, its own budget, and no build-time guarantees at all.Web Performance · Static Architecture · Web Architecture
Your Fallback Font Is Doing the Layout
font-display: swap does not fix font loading. It converts invisible text into a layout shift, and the fallback metrics decide how bad that shift gets.Web Performance · Static Architecture
Preload Is a Zero-Sum Game
A preload does not create bandwidth. It reorders a queue. Everything you promote pushes something else down, and usually that something is your LCP.Web Performance · Static Architecture · Web Architecture
Cache-Control Is the Config File You Never Wrote
Your static site is fast in the lab and mediocre on repeat visits. The fix is not a bundler flag. It is two tiers of cache headers, written down.Web Performance · Static Architecture · Web Architecture
You Don't Need a Form Library
HTML5 has had client-side validation for over a decade. :user-invalid, setCustomValidity(), and the novalidate pattern cover 95% of what React Hook Form does — and the last CSS gap closed in late 2023.Signal vs Noise · Developer Experience (DX) · Web Performance · Static Architecture
Lighthouse CI Without a SaaS
Performance-monitoring SaaS sells you a wrapper around a tool you already have. GitHub Actions and Lighthouse CI fail the build on regressions for free.DevOps · Web Performance · Automation · Signal vs Noise
Stop Loading Google Fonts
Google Fonts is a tracker that happens to also serve fonts. Self-hosting is faster, more private, and a one-afternoon migration in 2026.Signal vs Noise · Web Performance · Developer Experience (DX)
Why I Deleted Google Analytics
Google Analytics is slow, GDPR-hostile, undercounted by ad blockers, and answering questions you mostly aren't asking. Here's why I removed it from every site I run, and what I use instead.Signal vs Noise · Web Performance · Developer Experience (DX)
The Dependency-Count Audit: Every Package Is a Bet, Not a Free Tool
Most JS projects have never had their dependency list audited line by line. Doing it once — with a real method instead of vibes — usually halves the count and exposes which packages were doing nothing in the first place.Node.js · Developer Experience (DX) · Web Performance · Signal vs Noise
Code Highlighting at Build Time: Shiki vs Prism and the Death of Runtime Tokenizers
Shipping a tokenizer to the browser to color code blocks made sense in 2014. It doesn't now. Build-time highlighting is faster, cheaper, and produces better-looking output — and the tradeoffs are smaller than you think.Developer Experience (DX) · Static Architecture · Web Performance · Web Architecture
Dark Mode Without the Flash
The white-flash-on-load that ruins half the dark-mode implementations on the web is preventable in about twelve lines of code. CSS variables, a render-blocking script, and one localStorage read — that's the whole trick.Static Architecture · Web Performance · Developer Experience (DX) · Signal vs Noise
OpenGraph Images at Build Time: Why Static Sites Win Social Cards
Generating social card images on demand from a serverless function feels modern. It's also slow, expensive, and fragile. Static sites can pre-render every OG image at build time, cache it forever, and never pay for it again.Next.js · Static Architecture · Web Performance
Your Lighthouse Score Is a Lie
A perfect 100 in Lighthouse means your test environment is fast. It says almost nothing about whether real users on real networks are having a fast experience.Signal vs Noise · Web Performance · Web Architecture

