Skip to content
CarbonlessBeta

Carbon report

fly.io

Scanned · all pages on fly.io

0.275 g

cleaner than an estimated 60.5% of pages on the web 

  1. A+
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F

A+ is 0.04 g or less per view, F is more than 0.359 g CO₂e.

Sign in to re-scan
What the browser rendered, so you can confirm a real page was measured.

The numbers

2.46 MBcold load, on the wire
345 domains
268 kB5 requests
27 kB1% re-downloaded
0.365 g CO₂e
0.0040 g CO₂e
unknown
776 ms
0.002
26 ms

At 10,000 views a month this page emits about 33.0 kg CO₂e a year, roughly 135 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 1%, and world-average grid intensity. How we calculate this

What to fix

apply everything → ~0.133 g/visit, rating B

  1. Serve images at the size they displaysave ~0.045 g/visit (403 kB)High impact · quick fix

    5 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.

    • agents-hero-db25ae9b78de0e83337b8ca77e1ef841.…396 kB
    • agents-preferred-cloud-388ced42257500da7ec403…74 kB
    • manage-connectors-3a03cb2ee65ae73697497d13e61…41 kB
    • manage-no-disk-sizing-ba1e7dcba6b4b60a0583f0d…40 kB
    • manage-checkpointing-ff418d9ba95f1124fff3383c…31 kB
  2. Reduce JavaScript payloadsave ~0.030 g/visit (267 kB)High impact · moderate effort

    7 scripts total 1.07 MB on the wire (3.70 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.

    • app-dd9bfad74effae51c4aa12809ee55a2d.js523 kB
    • stripe.js267 kB
    • js192 kB
    • posthog-7b1419414106236dca312c579aaf3d4a.js79 kB
    • events.js2.2 kB
  3. Convert and compress imagessave ~0.025 g/visit (227 kB)Medium impact · quick fix

    2 images exceed 300 kB apiece.

    Serve AVIF (or WebP) with responsive srcset sizes, and re-compress oversized files. AVIF typically halves JPEG weight at the same visual quality.

    • agents-hero-db25ae9b78de0e83337b8ca77e1ef841.…396 kB
    • cta-banner-bg-c4b3c3dcfe58aec2f56bd438c419976…359 kB
  4. Audit third-party servicessave ~0.015 g/visit (134 kB)Medium impact · moderate effort

    3 third-party domains account for 268 kB (11% 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.

    • js.stripe.com267 kB
    • www.googletagmanager.com385 B
    • 0 B
  5. Optimize web fontssave ~0.012 g/visit (107 kB)Medium impact · quick fix

    7 font files total 305 kB.

    Subset fonts to used glyphs, prefer one variable font over multiple weights, serve WOFF2 only, and consider system fonts for UI text.

    • fricolage-grotesque.var.woff2147 kB
    • mackinac-bold-italic.woff227 kB
    • mackinac-bold.woff227 kB
    • mackinac-medium-italic.woff227 kB
    • fragment-mono-italic.woff226 kB
  6. Verify your hosting energyMedium impact · moderate effort

    This host has not published renewable energy evidence with the Green Web Foundation, so its energy source is unknown.

    Choose a provider listed in the Green Web Directory, or ask your current provider to publish evidence (and a carbon.txt). This cuts the data-center share of every single page view.

    • carbon.txtNo carbon.txt found at the site root; publishing one is the lightest first step.
  7. Upgrade compression beyond gzipsave ~0.015 g/visit (136 kB)Advisory · quick fix

    907 kB 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.

    • app-dd9bfad74effae51c4aa12809ee55a2d.js523 kB
    • js192 kB
    • app-5a6f014ecd5740774077b8674e6d2a5e.css110 kB
    • posthog-7b1419414106236dca312c579aaf3d4a.js79 kB
    • webmcp-3f6bb99cd226597bfa4e98ecb2d9f2bd.js1.4 kB
  8. Set a page-weight budgetAdvisory · moderate effort

    At 2.46 MB per view this page rates D. 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.

  9. 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.

    • fly.io27 requests over http/1.1

Where the bytes are

  • JavaScript1.07 MB · 7 req
  • Images955 kB · 17 req
  • Fonts305 kB · 7 req
  • CSS110 kB · 1 req
  • HTML25 kB · 1 req
  • Data (fetch)272 B · 1 req
Ten heaviest requests
ResourceTypeWire sizeCache-Control
fly.io/phx/assets/js/app-dd9bfad74effae51c4aa12809ee55a2d.js?vsn=dscript523 kBpublic, max-age=31536000, immutable
fly.io/phx/images/agents-hero-db25ae9b78de0e83337b8ca77e1ef841.webp?vsn=dimage396 kBpublic, max-age=31536000, immutable
fly.io/phx/images/sprites/cta-banner-bg-c4b3c3dcfe58aec2f56bd438c4199767.webp?vsn=dimage359 kBpublic, max-age=31536000, immutable
js.stripe.com/dahlia/stripe.jsscript267 kBmax-age=120
analytics.fly.io/gtag/js?id=G-EX6DMZ1DZVscript192 kBprivate, max-age=900
fly.io/phx/ui/fonts/fricolage-grotesque.var.woff2font147 kBpublic
fly.io/phx/assets/app-5a6f014ecd5740774077b8674e6d2a5e.css?vsn=dstylesheet110 kBpublic, max-age=31536000, immutable
fly.io/phx/assets/js/posthog-7b1419414106236dca312c579aaf3d4a.js?vsn=dscript79 kBpublic, max-age=31536000, immutable
fly.io/phx/images/agents-preferred-cloud-388ced42257500da7ec403f260a14091.webp?vsn=dimage74 kBpublic, max-age=31536000, immutable
fly.io/phx/images/manage-connectors-3a03cb2ee65ae73697497d13e61281d5.webp?vsn=dimage41 kBpublic, max-age=31536000, immutable

Share this report

Live carbon badge preview
<a href="https://carbonless.cc/report/fly.io"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Ffly.io" 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.