Looked at his website properly
Seven kilobytes of CSS. No JavaScript at all. Four pages that load before your finger leaves the mouse. I had been prepared to be smug and instead sat quietly for a moment.
Zero dependencies
My dad built a website. He mentioned that he made it entirely with a large language model. He mentioned it more than once. So I built this one.
I don’t think a website should be reduced to statistics. I have, however, collected them, formatted them, and animated them.
Not one. No framework, no library, no font service.
This page never contacts another server. Not even for a typeface.
Hand-written. His site has none at all, which is admittedly also a strategy.
Optical size, weight, softness, and wonk. Wonk is a real axis. I checked.
Findable. One of them is on this page, above.
My dad runs a self-storage company. He built its website himself, and he was proud of it, and he was right to be. It loads instantly, it says exactly what it needs to say, and it does not waste a single byte.
He also mentioned — warmly, repeatedly, at length — that he had made the whole thing with a large language model, and that it had taken him no time at all.
So this is a reply. Same tools, different priorities. His site is a business explaining itself to customers. This one is a website explaining that it has a rotating wax seal, a constellation field, and a confetti cannon, none of which anybody requested.
Everything on this page is a fact about this page. I couldn’t bring myself to invent achievements, so instead I measured the only thing actually in front of me: the website.
He is still comfortably ahead on the part that matters, which is running an actual business with actual buildings in it. I want that on the record before you scroll any further.
A truthful account. Every one of these actually happened while making this page.
Seven kilobytes of CSS. No JavaScript at all. Four pages that load before your finger leaves the mouse. I had been prepared to be smug and instead sat quietly for a moment.
Fraunces has four variable axes, one of which is literally called WONK and makes the letterforms slightly stranger. There was no argument for needing this. It went in immediately.
Browsers give <figure> a 40px side margin by default. Nobody resets it. It was quietly shoving the testimonials 64 pixels off the side of every phone screen. Found only because the layout was tested at three widths instead of admired at one.
Loading fonts from Google means handing a third party your visitors’ IP addresses. Subsetting and self-hosting them cost a few hundred kilobytes and deleted an entire section of the privacy policy. Worth it for the sentence “zero external requests” alone.
Every scroll-reveal section sat at opacity: zero forever if scripting was off — the page was, technically, empty. Fixed properly. His site, having no JavaScript to disable, was never capable of this mistake.
A whole page documenting the construction of a website that exists to win an argument. Nobody asked for the colophon either. It is, I think, the most honest thing here.
There was no judging panel. There was no shortlist. There was, at no point, anybody else involved.
The vote was held privately, by me, and carried by a single ballot. My father has requested a recount. The request is being reviewed by the same panel.
Four drifting colour fields, a film-grain layer, a cursor spotlight and a canvas of moving points. The other site in this category uses one flat navy. It ran unopposed and still lost.
Most sites that ship a variable font use one axis and call it a day. This one drives optical size, weight, softness and wonk from the stylesheet. You cannot see three of them. I can.
I was not eligible. The confetti cannon disqualified me in the first round, and the rotating wax seal meant there was no realistic appeal.
A default browser margin quietly breaking every mobile viewport, hidden behind an overflow: hidden that made it invisible. Caught by testing rather than by looking. Genuinely the best moment of the build.
Awarded in advance, on the strong expectation that this website will be raised at a family meal by me, unprompted, within the week. The category has never had another nominee.
A measure of how much of this website needed to exist. Higher is worse. This is the only chart here I am not proud of.
Measured against a certain other family-operated website. Conducted in a spirit of love, and with a scoring system I designed myself.
| Metric | This website | The other one |
|---|---|---|
| Animation | Eleven kinds, all reduced-motion aware | Load-bearing stillness |
| Colour themes | Two, with a toggle that remembers | One, permanently, confidently |
| External requests | Zero. Fonts and all. | Also zero, by not having features |
| Typography | A self-hosted variable serif, four axes live | Segoe UI, and it knows what it did |
| Easter eggs | Two, findable | The mystery is part of the charm |
| Page weight | 373KB, mostly typeface | 1.4MB, mostly uncompressed photographs |
| Time to first paint | Fast | Faster. 11KB of HTML and CSS, system fonts. |
| Actually runs a real business | No | Yes. Six locations. Genuinely impressive. |
| Feelings hurt | Zero. This is affection. | Zero. Hi, Dad. |
Gathered from a small and biologically related sample group.
It’s very animated.
There is a rotating wax seal at the top. I don’t know what you want me to say about that.
She measured both websites, found out his was four times heavier than hers, and has not stopped saying the word “kilobyte” since.
I pressed the circle thing and it threw confetti at me. Then I did it eleven more times.
Loads in under a second. I timed it. Then I timed his, and quietly moved the conversation on to total page weight.
I preferred the storage one. You can see the prices.
Yes. That is the complete and only reason it exists. I appreciate you asking directly rather than dancing around it for six sections the way the rest of this page does.
No, and I want to be clear about this. It’s clean, it loads in an instant, it says what a customer needs to know and nothing else, and it wastes nothing. Judged as a business website — which is the only fair way to judge it — it is better at its job than this one is at anything. It simply does not have a rotating wax seal, and that is the hill I chose.
I assumed his was, and wrote a whole section conceding the point, and then I measured it. His home page loads 1.4MB — five photographs straight off a camera, the largest a single 419KB JPEG. This entire website, four self-hosted typefaces included, is 373KB.
So his largest photo is bigger than my whole site. I spent an hour subsetting fonts to save fifty kilobytes. He could have saved eight hundred by resizing one picture of a building.
He still paints faster, to be fair — his HTML and CSS come to 11KB and use fonts already on your machine. First paint is his. Total weight is mine, and I intend to bring it up.
Hand-written HTML, CSS and JavaScript. No framework, no build step, no dependencies, no tracking, no cookies, and not one external network request. Roughly 39KB of CSS and 452 lines of JavaScript. Full breakdown on the colophon, because of course there is one.
Yes — that is the one thing I was strict about. Every figure here describes this website and was measured from the actual files: the dependency count, the request count, the line count, the font axes, the easter eggs. The jokes are jokes. The measurements are measurements.
Two. The seal at the top of this page is a button, and it does something. The other is the Konami code — up, up, down, down, left, right, left, right, B, A. There’s a message in the browser console as well, but mentioning it would be showing off.
He does now.
Corrections, complaints, and rival websites all welcome. Particularly rival websites.
core@lillyadkins.com