All bands
Web Performance
Performance engineering for the modern web: Core Web Vitals, asset pipelines, caching strategies, and frontend optimization.
13 STATIONS ON THIS BAND
Medium wave · 540–1600 kHz13 stations stn
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

