LFW

Blog

Notes on the web problems teams actually feel.

Forms, deliverability, accessibility, operations: plain English, useful before you know what to ask for.

New articles by email

One confirmation email first. Nothing sends until you click it. Or subscribe via RSS.

The Four Files Nobody Links To

Every website has four plain-text files no visitor ever sees: robots.txt, sitemap.xml, security.txt, and llms.txt. Search engines, security scanners, and AI agents read them on every visit.

What each one is, who actually reads it, what to put in it, and the one rule that keeps all of them safe. We went through this list on our own site this week and found gaps, so the free audit now checks for them.

Our Hero Image Was Disappearing on iPhones. An Ad Blocker Was Hiding It.

For weeks the hero on three of our own pages vanished for a second and a half on iPhones, on a cold load only. Nothing reproduced it in a lab.

A fifty-line field trace found it in three page loads: an ad blocker was hiding any element whose class started with ad-.

Why the Page Jumps While It Loads

What layout shift is and why it registers as brokenness, the four causes behind nearly every case (images without dimensions, embeds without reserved space, fonts swapping, banners injected late), and the exact fixes, including where WordPress already knows every image's width and height.

Phones Download Your Desktop Images

Why a 2.6 MB hero reaches a phone that needs 33 KB, how srcset and sizes let the browser choose, when you actually need the picture element, what WebP buys you, and where WordPress themes quietly undo the work it already does for you.

Your Media Library Is Public

The media library is not a private folder, in WordPress or anywhere else. What that means for the drafts and packets that get uploaded to grab a link, why switching the API off is the wrong fix, and how to mark a file private without breaking anything.

After the Submit Button

The series finale: where a submission actually goes. The record before the notification, the email path that rots silently, the confirmation with substance, and the monitoring that notices the week your form goes quiet.

Stopping Spam Without CAPTCHAs

CAPTCHAs tax the humans and barely slow the professionals. The quiet alternative: a honeypot, a clock, a rate limit, and a content check that flags instead of blocking, all on the server where the visitor never sees any of it.

Native Controls on a Dark Theme

Every native form control is painted by two hands: your stylesheet and the visitor's browser. On a dark background the browser's half keeps painting for a light page. The invisible dropdown arrow, the blinding calendar, the autofill flood, and the one line of CSS that fixes most of it.

Suggest a topic

Send us the web problem nobody owns.

If it keeps coming up for your team, it's probably worth writing about. New pieces go out by email (one confirmation first, one-click unsubscribe on every send) or over RSS if you'd rather use your own reader. Either way, nothing in your inbox we didn't earn.

Prefer to write?

Tell us what needs to work better.

Slow, fragile, hard to edit, missing a workflow. Say it plainly, and you'll get a straight answer, not a ticket number.

You'll get a straight answer, usually the same day.