Most sustainability work on the web arrives too late to change anything. The site is designed, built, signed off, and then somebody runs a carbon calculator, writes a number in a slide, and adds a paragraph about the planet to the footer. Nothing about the page changes.
The reason is simple: by the time you measure, every decision that determined the weight has already been made. The hero video was agreed in the design review. The three font families were a brand decision. The analytics, the chat widget and the consent banner were each somebody else’s requirement. Measuring at the end tells you the score of a game that is already over.
So we moved the number to the front.
A budget, in the scope document, next to the deadline
Before design starts we agree two figures with the client: a page weight and a carbon grade. They go into the scope alongside the date and the price, and they are treated the same way — when a release misses the budget, that is a defect, not a discussion about priorities.
This sounds severe and it is the opposite. A budget is what allows a team to say yes to the right things. When the number is agreed, the conversation stops being "do we care about the planet" — which nobody wins — and becomes "this animation costs 180 KB, what would we give up for it", which anybody can answer.
What we hold ourselves to
It would be poor form to sell this without publishing our own. Measured on 18 September 2026, Lighthouse in headless Chrome, the Pepulux homepage:
- Performance 91, Accessibility 100, SEO 100
- Cumulative Layout Shift 0
- 272 KiB total page weight
- Zero tracking scripts, zero advertising cookies
The badge in our footer reports the carbon figure live rather than quoting a number we measured once on a good day. It is there so that a reader can check us, which is the only reason to publish a figure at all.
The decisions that actually move the number
Almost none of this is exotic. Four decisions do most of the work, and all four are made early:
- Render on the server. Most pages are documents, not applications, and a document does not need a framework to boot before it can be read.
- Draw instead of photograph. Every visual on this site that could be geometry is generated SVG — no request, no payload, and it recolours per brand.
- One font family, and justify the weights. A second family is rarely a design decision; it is usually an unfinished one.
- Audit third parties ruthlessly. One chat widget can outweigh your entire site. Ours ships exactly one third-party script and we can tell you what it is.
The part nobody advertises: we will build it your way
This is our primary practice, and we lead with it. We are not going to pretend it is the only way to build, or refuse work that does not fit it.
If you want the video hero, the motion library and the marketing stack, we will build that — and we will tell you plainly what it weighs, what it costs to serve, and which of your customers on a mid-range phone will give up waiting. Then it is your decision, made with the numbers in front of you rather than after launch when they are expensive to change.
What we will not do is build the heavy version and then write you a sustainability statement about it. That is the part that is dishonest, not the video.
Why a client should care, in their own terms
Nobody signs off a budget for our principles, and they should not have to. The argument that works is that this is the same work as performance, and performance is the same work as revenue.
A lighter page is a faster page, which is what Core Web Vitals measure, which is what search ranks on. Less JavaScript is less to break, patch and maintain. Lower weight is a smaller hosting bill every month rather than a saving once. And a page that works on a mid-range Android over a poor connection reaches the customers most sites quietly lose.
The emissions are real and they matter. They are also, conveniently, downstream of decisions you would want to make anyway.
Where we are not there yet
Two of our own product sites are heavier than this site by a wide margin — one of them ships eight megabytes, largely unoptimised images and one oversized JavaScript chunk. We know because we measured them, and we are not going to publish a sustainability page while pretending otherwise.
That is the cost of putting a number on the front of the conversation: it applies to you too, and it is visible when you miss.
