Carbon report
eliasfarhan.ch/gamedev/cpp/2026/08/14/srnative-01-why-a-custom-engine.html
Scanned · all pages on eliasfarhan.ch
0.689 g
cleaner than an estimated 26% 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.919 g CO₂e
- <0.001 g CO₂e
- verified green
- 316 ms
- 0.109
- 29 ms
At 10,000 views a month this page emits about 82.7 kg CO₂e a year, roughly 339 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 0%, and world-average grid intensity. How we calculate this
What to fix
apply everything → ~0.276 g/visit, rating D
Convert and compress imagessave ~0.175 g/visit (1.92 MB)High impact · quick fix
57 images (4.27 MB) ship in legacy formats (JPEG/PNG/GIF).
Serve AVIF (or WebP) with responsive srcset sizes, and re-compress oversized files. AVIF typically halves JPEG weight at the same visual quality.
- Miegakure.png1.21 MB
- trials.png670 kB
- unity_runtimefee.png412 kB
- civ_iv.jpg403 kB
- gamescom26_SS%20(6).jpg265 kB
Audit third-party servicessave ~0.173 g/visit (1.90 MB)High impact · moderate effort
12 third-party domains account for 3.80 MB (50% 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.
- platform.twitter.com2.87 MB
- pbs.twimg.com611 kB
- embed.bsky.app215 kB
- cdn.bsky.app40 kB
- platform.x.com28 kB
- www.google-analytics.com22 kB
Lazy-load below-the-fold mediasave ~0.163 g/visit (1.80 MB)High impact · quick fix
20 below-the-fold images/iframes (3.60 MB) download immediately for every visitor.
Add loading="lazy" to below-fold img and iframe elements (and keep it off the LCP image). Browsers then fetch them only when scrolling approaches.
- Miegakure.png1.21 MB
- trials.png670 kB
- unity_runtimefee.png412 kB
- civ_iv.jpg403 kB
- gamescom26_SS%20(6).jpg265 kB
Reduce JavaScript payloadsave ~0.069 g/visit (755 kB)High impact · moderate effort
78 scripts total 3.02 MB on the wire (9.75 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.
- post-m4-dscTF.js205 kB
- embed.9449.78398904051446294e3d.js164 kB
- embed.9449.78398904051446294e3d.js164 kB
- embed.9449.78398904051446294e3d.js164 kB
- embed.9449.78398904051446294e3d.js164 kB
Serve images at the size they displaysave ~0.012 g/visit (129 kB)Medium impact · quick fix
7 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.
- Miegakure.png1.21 MB
- unity_runtimefee.png412 kB
- civ_iv.jpg403 kB
- gamescom26_SS%20(6).jpg265 kB
- romulan_cascaded.png209 kB
Upgrade compression beyond gzipsave ~0.044 g/visit (481 kB)Advisory · quick fix
3.20 MB of text ships gzip-compressed; Brotli or Zstandard would cut roughly another 15-20%, and browsers without them fall back to gzip automatically.
Serve precompressed Brotli for static text assets (highest level, compressed at build time) and enable Brotli or zstd for dynamic responses; keep gzip only as the fallback.
- post-m4-dscTF.js205 kB
- embed.9449.78398904051446294e3d.js164 kB
- embed.9449.78398904051446294e3d.js164 kB
- embed.9449.78398904051446294e3d.js164 kB
- embed.9449.78398904051446294e3d.js164 kB
Stop downloading the same asset twicesave ~0.022 g/visit (245 kB)Advisory · quick fix
8 assets were fetched more than once in a single page load (2.45 MB 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.
- embed.9449.78398904051446294e3d.js9 downloads · 1.47 MB
- embed.Tweet.70198ef24afe05adbecf.js9 downloads · 121 kB
- embed.runtime.3b19346e5d08b0b587c7.js9 downloads · 39 kB
- embed.749.467388cca0b3fe9c3291.js9 downloads · 62 kB
- embed.ondemand.i18n.en-js.19a28d85d7fc7916b4b…9 downloads · 15 kB
Set a page-weight budgetAdvisory · moderate effort
At 7.59 MB per view this page rates F. 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.
Upgrade connections to HTTP/2 or HTTP/3Advisory · quick fix
1 host serves five or more resources over HTTP/1.1, paying per-request connection and header overhead newer protocols eliminate.
Enable HTTP/2 (or HTTP/3) on the server or move the assets behind a CDN that speaks it; multiplexing makes many small requests nearly free.
- eliasfarhan.ch23 requests over http/1.1
Where the bytes are
- Images4.40 MB · 66 req
- JavaScript3.02 MB · 78 req
- HTML140 kB · 12 req
- Data (XHR)13 kB · 10 req
- CSS8.1 kB · 2 req
- Other4.7 kB · 2 req
- Data (fetch)2.5 kB · 2 req
Ten heaviest requests
| Resource | Type | Wire size | Cache-Control |
|---|---|---|---|
| eliasfarhan.ch/images/2026/Miegakure.png | image | 1.21 MB | max-age=600 |
| eliasfarhan.ch/images/trials.png | image | 670 kB | max-age=600 |
| eliasfarhan.ch/images/2026/unity_runtimefee.png | image | 412 kB | max-age=600 |
| eliasfarhan.ch/images/2026/civ_iv.jpg | image | 403 kB | max-age=600 |
| eliasfarhan.ch/images/2026/gamescom26_SS%20(6).jpg | image | 265 kB | max-age=600 |
| eliasfarhan.ch/images/2026/romulan_cascaded.png | image | 209 kB | max-age=600 |
| embed.bsky.app/static/post-m4-dscTF.js | script | 205 kB | public, max-age=3600 |
| pbs.twimg.com/media/GjlhC6_WkAA9UY0?format=png&name=small | image | 167 kB | max-age=604800, must-revalidate |
| platform.twitter.com/embed/embed.9449.78398904051446294e3d.js | script | 164 kB | public, max-age=315360000 |
| platform.twitter.com/embed/embed.9449.78398904051446294e3d.js | script | 164 kB | public, max-age=315360000 |
Share this report
<a href="https://carbonless.cc/report/eliasfarhan.ch/gamedev/cpp/2026/08/14/srnative-01-why-a-custom-engine.html"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Feliasfarhan.ch%2Fgamedev%2Fcpp%2F2026%2F08%2F14%2Fsrnative-01-why-a-custom-engine.html" 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.