A 4.4 MB homepage, rebuilt to 541 KB.
GenFul Sciences is a skincare brand in Lahore. We built its store from scratch in 2026 — not Shopify, not WooCommerce: six products, four bundles, a skin-type quiz that routes to a routine, a bundle builder that prices itself, and a blog. The homepage weighed 4.4 MB when Bilby first walked it and 541 KB after, which is 88% lighter.
Disclosure: this store is owned by the owner’s family. It is a real build with real numbers and it is not an independent reference — both are true, and the page should be weighed accordingly.
One figure here is like-for-like and the rest are not, so here is which. The page weight was measured the same way in September and October and again for this page: 4.4 MB → 541 KB → 542 KB. The September and October timings came from different tools, so we do not present them as a before-and-after. The Lighthouse figures below are from 14 October 2026; a second reading we took on 15 October 2026, on a different harness, came out lower and is published beside them rather than instead of them.
The weight, three times.
Lighthouse, on 14 October 2026.
Measured on 14 October 2026, three runs per strategy. Desktop is where this build is strongest; mobile is where the remaining work is, and a case study that showed only the first column would not be worth reading.
| Measurement | Desktop | Mobile |
|---|---|---|
| Performance | 98 | 82 |
| Largest contentful paint | 0.5 s | 3.4 s |
| Blocking time | 0 ms | — |
| Transferred | 541 KB | 541 KB |
A second reading, and why it is here
We measured the homepage again on 15 October 2026, on a different Lighthouse harness, and it came out lower: desktop 60 with a 1.87 s largest-contentful-paint and 557 ms of blocking, mobile 60 with 8.83 s. The page weight agreed to within a kilobyte — 542 KB against the 541 KB on record.
Both readings are published because we hold both, and a case study that quoted only the better one would be choosing. What they agree on is the shape of the remaining problem: the weight is solved and the main thread is not, which is why mobile trails desktop in either set. The second reading’s runs also disagreed with each other on the same warmed page, and a score that swings is itself a finding about a page with this much script.
The 15 October 2026 figures, the script that produced them and the heaviest requests are in docs/shots/p48/c5/genful-measure.json in our repository. The 14 October 2026 figures are Cowork’s.
Six products and four things a theme will not do.
The store
- Six products and four bundles, with the bundles priced from their contents rather than maintained by hand.
- A skin-type quiz that ends in a routine rather than a discount code — the answers choose products, and the result is a page you can send to somebody.
- A bundle builder: pick your own, see the price move, add the set in one go.
- A blog carrying the brand’s own research, which is where a pharmacist-founded brand earns its search traffic.
- Cash on delivery across Pakistan and international shipping, which is the ordinary requirement in that market and the one most hosted platforms make hard.
What it looks like.
Screenshots of the live store, taken the day this page was published. Not mockups.
Straight answers.
Who owns this store?
The owner’s family. GenFul Sciences is a Pakistani skincare brand in Lahore, founded by a licensed pharmacist, and we say so here rather than presenting it as an arm’s-length client. It is a real build with real numbers and it is not an independent reference.
Why is it not on Shopify?
Because the brand needed things a themed store makes awkward — a skin-type quiz that routes to a routine, a bundle builder that prices itself, and a blog that carries the brand’s own research — and because at six products the per-product advantages of a hosted platform are small. For most stores that calculus runs the other way, and we say so on the Shopify page.
What made the homepage 4.4 MB?
One 1.7 MB image and about 2 s of blocking scripts, on Bilby’s walk of 8 September 2026. That is the ordinary shape of a heavy page: it is rarely a hundred small things, it is two or three big ones. Finding which is the whole job, and it is what our free speed test and app code scanner are for.
Why are there two sets of Lighthouse figures?
Because we hold two. The 14 October 2026 run is the one this page leads with. A second reading on 15 October 2026, on a different Lighthouse harness, came out lower on every timing while agreeing on the page weight to within a kilobyte. Quoting only the better of two readings would be choosing rather than reporting, so both are here with their dates and their tools, and you can weigh them.
What is still wrong with it?
Mobile, in both readings. The homepage carries enough JavaScript that the largest element takes 3.4 s to appear on the 14 October 2026 run and 8.8 s on the later one. The weight is solved; the main thread is the next piece of work, it is not finished, and this page would be misleading if it implied otherwise.
Can we see the measurements?
They are in the repository: three runs per strategy, warmed first, medians reported, with the heaviest requests listed. The run file is docs/shots/p48/c5/genful-measure.json and the script that produced it is beside it.
A custom build, or a platform. We will say which.
This store is custom because six products and three interactive surfaces made it the cheaper answer. At a hundred products it would not have been, and the prices for both are published with the hours shown.
Where to go from here
- The EBS build — the other end of the scale: 10,304 products on Shopify, and what a catalogue that size takes.
- The free speed test — the same measurement, on your own site, with the real-user figures beside the lab ones.
- Web development — how we build, and the release gate that fails on speed.
- The store itself — judge it yourself.