Restraint as a technical discipline

The median home page got 7.8% heavier last year, up to 2.7 MB, while the platforms behind online stores consolidated further into a handful of defaults. Both numbers come from the 2025 Web Almanac, published in January. Read together they say something uncomfortable: the commercial web spends more bytes every year to look more like itself.

Brand and ecommerce leads arrive at this with a question and a fear. The question is why every store looks the same. The fear is that the cure is expensive, that a storefront with a real point of view means heavy pages, slow loads, and a conversion rate you have to apologise for. It doesn't, because the two problems have one solution. Subtraction is the only move that improves distinctiveness and performance at the same time, which is also why almost nobody makes it.

Sameness is added, not inherited

The convenient villain is the platform. About one in five sites crawled in the Almanac's dataset is a store, 19.9% on desktop and 19.2% on mobile, and the detected share is concentrated: WooCommerce at 35.4% of desktop ecommerce sites, Shopify at 21.5%, Squarespace Commerce at 9.1%, Wix at 7.8%. On mobile the concentration is sharper. The Almanac's own summary is that the default choices are getting more default. Four systems and their starter themes have quietly defined what most shoppers believe a shop looks like.

That explains the floor, not the ceiling. Plenty of brands on those platforms have distinctive storefronts, and plenty of custom builds are indistinguishable from a theme.

Best practice optimises everyone toward the same page

The second cause is orthodoxy. Conversion testing rewards the familiar, because familiarity performs well inside a two-week window, and the thing distinctiveness buys, memory, never shows up in the test. Run enough tests and every store in a category climbs toward the same local maximum: the same sticky header, the same four-column grid, the same trust badges under the same buy button. Writing in urdesignmag in April, a Dutch design director called the mid-market a dead zone of consumer indifference and put it more bluntly than I would: technology isn't stealing creativity, we're abandoning it. Marketing Week made the same point from the marketing side, that distinctiveness has been sacrificed on the altar of a frictionless experience.

Nobody in the process owns removal

The third cause is structural rather than cultural, and it is the one I find most convincing. In a normal ecommerce operation, many people can add something to a page. Merchandising adds a badge, growth adds a pop-up, legal adds a banner, marketing adds a pixel, a partner adds a widget. Almost nobody's job description includes taking something off. The Almanac's finding that home pages run about 45.8% heavier than inner pages is the fingerprint of that process. The home page is where everyone gets to put their thing.

Restraint as a discipline means installing the missing role. Someone owns removal, with the standing to say no, and every addition carries a cost stated in the same currency as its benefit.

Restraint is not minimalism

The two get conflated, and the conflation produces its own sameness: beige type on off-white, generously spaced, indistinguishable from the next beige store.

Restraint is a question asked of every element. What does this cost, and what does it earn. A stripped-back store built for a brand whose whole identity is scarcity and a busy, playful, component-rich store full of quirky photography can both pass that test. Marketing Week cites Supreme and Ikea in the same breath for exactly that reason. One is bare and one is loud, and both are unmistakable.

What taking almost everything away teaches you

We rebuilt aino.agency in 2026 with every surface rendered in text characters, including an ASCII physics simulation on the homepage and a playable arcade at /play. It works with JavaScript turned off. The constraint was arbitrary. What it exposed was not.

With no imagery and no decoration, hierarchy has nowhere to hide. If a page reads as a flat wall, the structure was wrong and photography was covering for it. Motion has to justify itself, because in a text grid a moving element is the only moving element and it had better mean something. Typography carries the whole load, so type choices stop being a mood and become an information architecture decision. Our framing for the project was an exercise in restraint, and restraint as a technical discipline as much as a visual one. That second half is the part that transfers to commerce work.

The transferable method is small. Remove an element and ship the page without it. If nobody notices in a week, it was never doing work. Most storefronts have never run that test on anything.

What the browser gives you for free

The technical half of restraint is knowing how much of a modern storefront is browser behaviour, reimplemented in JavaScript, shipped to every visitor, and maintained forever.

A document built from real HTML gives you, at no cost in bytes: navigation and history, back and forward with scroll restoration, find-in-page, text selection, keyboard access and a sane focus order, browser translation, reader modes, print, user font-size preferences, and a structure screen readers can move through. Native form controls give you validation, autofill, and the right keyboard on a phone. <details> is a disclosure widget. <dialog> is a modal with focus trapping. loading="lazy" and srcset handle image deferral and resolution. CSS scroll snap handles most of what a carousel library gets hired to do.

Every one of those you rebuild is a thing you ship, test, and can break. The custom select that eats autofill. The JS accordion whose contents find-in-page cannot see. The router that loses scroll position on back.

Script bytes are not image bytes

This is where design decisions become performance decisions. The Almanac's clearest point is that weight is not fungible. 100 KB of image is pixels the device decodes, while 100 KB of JavaScript is work, parsed, compiled and executed, and on a low-end phone that work can hold the main thread long enough to freeze the screen. Node count is its own cost, with several thousand DOM nodes making scrolling feel laggy regardless of connection speed. Memory inflates too, since a 200 KB image can occupy around 5 MB of RAM once decoded.

So the interesting budget is not total page weight. It is script weight and node count, and both are governed by how many behaviours you decided to own.

One caution about the newer platform features that tempt you here, popover, view transitions, container queries, scroll-driven animation: check current Baseline support before you rely on one, and treat it as enhancement rather than the mechanism a page needs to function.

What a no-JavaScript baseline buys

It buys resilience, not purity.

JavaScript is unavailable far more often than it is switched off. Bundles fail to download on hotel wifi, a third-party script blocks the parser, a corporate proxy strips a domain, an older device chokes on syntax it doesn't know. In each case a page whose rendering depends on script shows nothing, and a page that renders server-side and enhances afterwards shows the product, the price, and a link that works.

There is a second effect. A store that renders meaningfully in HTML is a store that crawlers and shopping agents can read. The Almanac now lists agentic commerce as a platform model alongside SaaS and headless: structured product data, inventory, policies and payment exposed so assistants can transact for a shopper. Nobody has good public data yet on how those agents parse pages, so treat this as an argument rather than a finding. Progressive enhancement and machine readability are the same engineering property, arrived at from different motives. And if a lot of transactional traffic eventually routes through assistants, the human-facing storefront's remaining job leans harder toward memory, which raises the value of looking like yourself.

The commercial case for looking like yourself

Distinctiveness sounds like taste, and taste sounds optional. The effectiveness literature disagrees.

Even on a well-converting store, more than 90% of visitors leave without buying. If most sessions produce no revenue, the only durable return on the session is whether the visitor remembers who you were. That is the mental-availability argument from Ehrenberg-Bass, and Jenni Romaniuk's work on distinctive brand assets is the practical version: a small number of consistently applied assets that make you retrievable later. Richard Shotton's use of the Von Restorff effect adds the mechanism, since people notice and remember what breaks the pattern around it. In an endless aisle of near-identical stores, being the odd one is a retrieval advantage.

The nuance worth keeping is that distinctive elements test well when they sit on top of solid basics, not instead of them. The emotion research most often cited for this comes from an agency's own whitepaper, so I'd treat the specific numbers as directional. The framework underneath it is not controversial.

How to judge your own storefront

Five checks, runnable this week:

  • Compare your home page weight to a product page. If the home page is much heavier, name what the delta is buying and who asked for it.
  • Look at script weight and DOM node count, not just total bytes. Those are the numbers that predict how the page feels in a hand.
  • Load the store with JavaScript disabled. Not to ship that way, but to see what the page is without it: product, price and navigation, or a blank shell.
  • Count the behaviours you reimplemented. Selects, modals, accordions, carousels, routing. Each one should have a reason better than "the design system had a component".
  • Cover the logo and show someone a screenshot. If they can't tell whose store it is, the design is doing no brand work, and it is costing you bytes anyway.

Where this shows up in our work

Design and engineering sit in one team here, which is mostly a practical arrangement: the person arguing for a behaviour and the person who has to ship and maintain it are in the same conversation. That is what makes design decisions and performance decisions the same decision rather than a negotiation between departments.

The repeatable part is architecture. The Aino Commerce Engine, our shared storefront setup for Centra builds, exists so restraint doesn't have to be re-argued on every project. The baseline renders server-side, enhancement is a choice, and the defaults are already subtractive. On Shopify the same logic leads to headless without the heavy default frontend where it earns its keep, and to a well-built Liquid theme where it doesn't.

Scale is the fair test of any of this. Nudie Jeans runs 54 active markets from a single Centra instance, which is a lot of merchandising, currency, language and legal complexity landing on the same set of templates. Restraint that only survives on a studio portfolio piece isn't a discipline. It holds up under that load or it doesn't.

The part that doesn't get easier

Generative tools have made the average competent storefront cheap to produce, which is precisely why the average one is worth less. If a brand's digital presence can be reproduced by an algorithm from a prompt, the presence was never carrying brand value. We've written before about what AI genuinely speeds up in a build, and the honest summary is that it compresses production, not judgement. Deciding what a page should not contain is still slow, still contested, and still the most valuable hour in the project.

The good part of the arithmetic is that the same hour pays twice. The module you remove because it dilutes the brand is also the module that stops shipping 40 KB of script to a phone on a train. Sameness and slowness turn out to be one problem in two sets of clothes, and they answer to the same word: less.



Back to Journal

.