0.305 g
cleaner than an estimated 56.7% of pages on the web
- A+
- A
- B
- C
- D
- E
- F
A+ is 0.04 g or less per view, F is more than 0.359 g CO₂e.
The numbers
- 0.404 g CO₂e
- 0.0066 g CO₂e
- verified green
- 960 ms
- n/a
- 27 ms
At 10,000 views a month this page emits about 36.6 kg CO₂e a year, roughly 150 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 2%, and world-average grid intensity. How we calculate this
What to fix
apply everything → ~0.122 g/visit, rating B
Audit third-party servicessave ~0.150 g/visit (1.64 MB)High impact · moderate effort
5 third-party domains account for 3.29 MB (99% of the page).
Remove services that no longer earn their place; load the rest on interaction (facades for embeds, delayed consent-gated tags). Each third party is also a privacy and performance dependency.
- substackcdn.com3.23 MB
- substack.com31 kB
- fonts.gstatic.com14 kB
- static.cloudflareinsights.com12 kB
- js.sentry-cdn.com2.8 kB
Reduce JavaScript payloadsave ~0.048 g/visit (521 kB)High impact · moderate effort
145 scripts total 2.09 MB on the wire (6.64 MB decoded). Bundles this size usually carry a lot of unused code.
Split bundles per route, tree-shake dependencies, and audit with a bundle analyzer or coverage profile. A 25% cut is a conservative target for bundles this size.
- 19106.a790c00e.js217 kB
- 97082.9c3b207e.js86 kB
- 97605.fe3e3cb5.js68 kB
- 19311.10761248.js60 kB
- lib-react.b35f9b26.js57 kB
Serve images at the size they displaysave ~0.028 g/visit (309 kB)High impact · quick fix
20 images are encoded at more than twice the pixels the layout shows, even accounting for this viewport's pixel density.
Generate multiple sizes and let the browser pick with srcset/sizes; a 4000px original behind a 400px slot spends bandwidth no screen displays.
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…117 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…86 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…70 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…51 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…48 kB
Stop downloading the same asset twicesave ~0.0028 g/visit (30 kB)Advisory · quick fix
8 assets were fetched more than once in a single page load (121 kB of repeated transfer).
Usually a script injected twice or cache-busting query strings that differ per reference. Load each asset once and let the HTTP cache do its job.
- 17021.e8bfdacd.js2 downloads · 56 kB
- lib-react.b35f9b26.js2 downloads · 115 kB
- 50586.dc9a964f.js2 downloads · 8.2 kB
- 50487.1ce1321c.js2 downloads · 15 kB
- 40657.d4b746d3.js2 downloads · 6.2 kB
Remove references to broken resourcessave ~<0.001 g/visit (1.2 kB)Advisory · quick fix
2 requests answered 4xx/5xx on load: transfer and connections spent on nothing, on every single visit.
Delete or fix the references (stale asset URLs, dead third-party tags). Each one is a request the page provably does not need.
- flowsHTTP 401 · 1.2 kB
- accountsHTTP 401 · 0 B
Set a page-weight budgetAdvisory · moderate effort
At 3.34 MB per view this page rates E. The findings above list where the weight is.
Agree a transfer budget (e.g. under 975 kB reaches a B), enforce it in CI, and re-scan after each change to hold the line.
Where the bytes are
- JavaScript2.09 MB · 145 req
- Images962 kB · 26 req
- CSS217 kB · 21 req
- HTML52 kB · 3 req
- Fonts14 kB · 1 req
- Data (XHR)3.2 kB · 3 req
- Other3.1 kB · 3 req
- Data (fetch)1.9 kB · 2 req
Ten heaviest requests
| Resource | Type | Wire size | Cache-Control |
|---|---|---|---|
| substackcdn.com/bundle/static/js/19106.a790c00e.js | script | 217 kB | public, max-age=31536000, immutable |
| substackcdn.com/image/fetch/$s_!A7CR!,w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1eb434-cbca-49dd-b374-b7dfd0ec3f9c_1700x2200.gif | image | 117 kB | public, max-age=31536000 |
| substackcdn.com/image/youtube/w_728,c_limit/E2TKdfBq8MU | image | 91 kB | public, max-age=7200 |
| substackcdn.com/image/fetch/$s_!OE7F!,w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e395b7b-ca5c-4c73-a213-b6e8340d2c80_2098x1208.png | image | 86 kB | public, max-age=31536000 |
| substackcdn.com/image/fetch/$s_!GNIU!,w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d026fe9-4fc0-48cb-9979-5bbf66350fff_1200x800.gif | image | 86 kB | public, max-age=31536000 |
| substackcdn.com/bundle/static/js/97082.9c3b207e.js | script | 86 kB | public, max-age=31536000, immutable |
| substackcdn.com/image/fetch/$s_!uLdz!,w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25ef9181-daf1-4796-89ca-949262b53c7e_864x485.png | image | 73 kB | public, max-age=31536000 |
| substackcdn.com/image/fetch/$s_!U9Sb!,w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f9aa1-ff46-4123-8b37-3c79e7391672_1600x1008.jpeg | image | 70 kB | public, max-age=31536000 |
| substackcdn.com/bundle/static/js/97605.fe3e3cb5.js | script | 68 kB | public, max-age=31536000, immutable |
| substackcdn.com/image/fetch/$s_!Gy6l!,w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23903743-0ae0-454b-9a07-65c6954863dd_2971x1816.jpeg | image | 62 kB | public, max-age=31536000 |
Share this report
<a href="https://carbonless.cc/report/www.byhand.ai"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Fwww.byhand.ai" alt="Carbon rating for this page" width="150" height="30" loading="lazy" /></a>The badge is a lightweight SVG (under 1 kB) served with long-lived caching, so a new scan can take up to a day to show through.