PageSourceSearch

https://discode.ai/eco

html discode.ai collected 2026-10-04 12:25:18 UTC 67,925 bytes, 165 lines download raw bytes

1<!DOCTYPE html><html data-dpl-id="dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" lang="en" data-theme="light" data-mode="auto"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93ed3db1f6e46d19-s.p.3wilzbrt38scn.woff2?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/logos/logo-blue-dark-full.svg?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8"/><link rel="preload" as="image" href="/icons/google.svg"/><link rel="preload" as="image" href="/illustrations/Gloria_Greenor_Webheader.webp"/><link rel="stylesheet" href="/_next/static/chunks/09nu0k86zkxcf.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2kl6bj54j773l.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/3vb8yit78f_ky.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8"/>
1<script src="/_next/static/chunks/2q6sx3_uwng8f.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/22oopibem53cs.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/2onmb7way3ex7.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/0aphgi8770way.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/34i312no6w2t5.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/1g1lg6copxpwe.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/turbopack-23tz78-3p_-_i.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="/_next/static/chunks/1nc4gydvqjdnz.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" async=""></script>
1<script src="https://clerk.discode.ai/npm/@clerk/clerk-js@6/dist/clerk.browser.js" data-clerk-js-script="true" async="" crossorigin="anonymous" data-clerk-publishable-key="pk_live_Y2xlcmsuZGlzY29kZS5haSQ"></script>
1<meta name="next-size-adjust" content=""/><link rel="preload" href="https://clerk.discode.ai/npm/@clerk/ui@1/dist/ui.browser.js" as="script" crossorigin="anonymous"/><title>Eco — discode.ai</title><meta name="description" content="CO2, water, energy — visible per request. A compass, not a measuring device."/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://discode.ai/eco"/><meta property="og:title" content="Eco — discode.ai"/><meta property="og:description" content="CO2, water, energy — visible per request. A compass, not a measuring device."/><meta property="og:site_name" content="discode"/><meta property="og:image" content="https://discode.ai/opengraph-image?7c5f4275d0c77150"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="discode — The good AI"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Eco — discode.ai"/><meta name="twitter:description" content="CO2, water, energy — visible per request. A compass, not a measuring device."/><meta name="twitter:image" content="https://discode.ai/opengraph-image?7c5f4275d0c77150"/><meta name="twitter:image:alt" content="discode — The good AI"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/favicon.ico?favicon.1tx48k71htsuq.ico?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" sizes="468x420" type="image/x-icon"/><link rel="icon" href="/icon?92c98a664832d417" type="image/png" sizes="512x512"/><link rel="apple-touch-icon" href="/apple-icon?a7c2d8826eade58b" type="image/png" sizes="180x180"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" noModule=""></script>
1</head><body class="inter_1ec0685a-module__ODW2ua__variable outfit_3b950fe4-module__OLzgJq__variable roboto_aee2967e-module__AGNm5q__variable min-h-screen flex flex-col font-sans antialiased"><div hidden=""><!--$--><!--/$--></div>
1<script>
2(function () {
3  var root = typeof globalThis !== "undefined" ? globalThis : window;
4
5  function define(target, key, value) {
6    try {
7      Object.defineProperty(target, key, {
8        configurable: true,
9        writable: true,
10        value: value
11      });
12    } catch (_) {
13      target[key] = value;
14    }
15  }
16
17  if (typeof root.Promise !== "undefined" && typeof root.Promise.withResolvers !== "function") {
18    define(root.Promise, "withResolvers", function withResolvers() {
19      var resolve;
20      var reject;
21      var promise = new root.Promise(function (res, rej) {
22        resolve = res;
23        reject = rej;
24      });
25      return { promise: promise, resolve: resolve, reject: reject };
26    });
27  }
28
29  if (typeof Array.prototype.at !== "function") {
30    define(Array.prototype, "at", function at(index) {
31      var list = Object(this);
32      var length = list.length >>> 0;
33      var numericIndex = Number(index) || 0;
34      var relativeIndex = numericIndex < 0 ? Math.ceil(numericIndex) : Math.floor(numericIndex);
35      var resolvedIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;
36      return resolvedIndex < 0 || resolvedIndex >= length ? undefined : list[resolvedIndex];
37    });
38  }
39
40  if (typeof Array.prototype.findLast !== "function") {
41    define(Array.prototype, "findLast", function findLast(predicate, thisArg) {
42      if (this == null) throw new TypeError("Array.prototype.findLast called on null or undefined");
43      if (typeof predicate !== "function") throw new TypeError("predicate must be a function");
44      var list = Object(this);
45      var length = list.length >>> 0;
46      for (var i = length - 1; i >= 0; i--) {
47        var value = list[i];
48        if (predicate.call(thisArg, value, i, list)) return value;
49      }
50      return undefined;
51    });
52  }
53
54  if (typeof Array.prototype.findLastIndex !== "function") {
55    define(Array.prototype, "findLastIndex", function findLastIndex(predicate, thisArg) {
56      if (this == null) throw new TypeError("Array.prototype.findLastIndex called on null or undefined");
57      if (typeof predicate !== "function") throw new TypeError("predicate must be a function");
58      var list = Object(this);
59      var length = list.length >>> 0;
60      for (var i = length - 1; i >= 0; i--) {
61        if (predicate.call(thisArg, list[i], i, list)) return i;
62      }
63      return -1;
64    });
65  }
66
67  if (typeof String.prototype.replaceAll !== "function") {
68    define(String.prototype, "replaceAll", function replaceAll(searchValue, replaceValue) {
69      var source = String(this);
70      if (searchValue instanceof RegExp) {
71        if (!searchValue.global) throw new TypeError("replaceAll requires a global RegExp");
72        return source.replace(searchValue, replaceValue);
73      }
74      return source.split(String(searchValue)).join(String(replaceValue));
75    });
76  }
77
78  if (
79    typeof root.crypto !== "undefined" &&
80    typeof root.crypto.randomUUID !== "function" &&
81    typeof root.crypto.getRandomValues === "function"
82  ) {
83    define(root.crypto, "randomUUID", function randomUUID() {
84      var bytes = new Uint8Array(16);
85      root.crypto.getRandomValues(bytes);
86      bytes[6] = (bytes[6] & 15) | 64;
87      bytes[8] = (bytes[8] & 63) | 128;
88      var hex = [];
89      for (var i = 0; i < 256; i++) hex[i] = (i + 256).toString(16).slice(1);
90      return (
91        hex[bytes[0]] + hex[bytes[1]] + hex[bytes[2]] + hex[bytes[3]] + "-" +
92        hex[bytes[4]] + hex[bytes[5]] + "-" +
93        hex[bytes[6]] + hex[bytes[7]] + "-" +
94        hex[bytes[8]] + hex[bytes[9]] + "-" +
95        hex[bytes[10]] + hex[bytes[11]] + hex[bytes[12]] + hex[bytes[13]] + hex[bytes[14]] + hex[bytes[15]]
96      );
97    });
98  }
99
100  if (typeof root.AbortController !== "undefined" && typeof root.AbortSignal !== "undefined") {
101    if (typeof root.AbortSignal.timeout !== "function") {
102      define(root.AbortSignal, "timeout", function timeout(ms) {
103        var controller = new root.AbortController();
104        var reason;
105        try {
106          reason = new DOMException("Signal timed out.", "TimeoutError");
107        } catch (_) {
108          reason = new Error("Signal timed out.");
109          reason.name = "TimeoutError";
110        }
111        root.setTimeout(function () {
112          try {
113            controller.abort(reason);
114          } catch (_) {
115            controller.abort();
116          }
117        }, Math.max(0, Number(ms) || 0));
118        return controller.signal;
119      });
120    }
121
122    if (typeof root.AbortSignal.any !== "function") {
123      define(root.AbortSignal, "any", function any(signals) {
124        var controller = new root.AbortController();
125        var cleanup = [];
126        var done = false;
127
128        function abortFrom(signal) {
129          if (done) return;
130          done = true;
131          for (var j = 0; j < cleanup.length; j++) cleanup[j]();
132          try {
133            controller.abort("reason" in signal ? signal.reason : undefined);
134          } catch (_) {
135            controller.abort();
136          }
137        }
138
139        for (var i = 0; i < signals.length; i++) {
140          var signal = signals[i];
141          if (signal.aborted) {
142            abortFrom(signal);
143            break;
144          }
145          var onAbort = (function (currentSignal) {
146            return function () {
147              abortFrom(currentSignal);
148            };
149          })(signal);
150          signal.addEventListener("abort", onAbort, { once: true });
151          cleanup.push((function (currentSignal, currentHandler) {
152            return function () {
153              currentSignal.removeEventListener("abort", currentHandler);
154            };
155          })(signal, onAbort));
156        }
157
158        return controller.signal;
159      });
160    }
161  }
162})();
163</script>
163<script>(function(){try{var t=localStorage.getItem('theme');if(t&&['auto','light','dark'].indexOf(t)!==-1){var r=t==='auto'?(window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light'):t;document.documentElement.setAttribute('data-theme',r);if(r!=='light')document.documentElement.classList.add('dark')}}catch(e){}})()</script>
163<script>(function(){try{var s=location.pathname.split('/')[1];document.documentElement.lang=['de','fr','es','it','pt'].indexOf(s)!==-1?s:'en'}catch(e){}})()</script>
163<header class="sticky top-0 z-50 transition-colors duration-300 bg-background/80 backdrop-blur supports-[backdrop-filter]:bg-background/70"><div class="mx-auto flex h-16 max-w-5xl items-center justify-between px-4"><a class="shrink-0" href="/"><img alt="Discode Logo" width="107" height="34" decoding="async" data-nimg="1" style="color:transparent" src="/logos/logo-blue-dark-full.svg?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8"/></a><nav class="hidden md:flex items-center gap-6" aria-label="Main navigation"><a aria-current="page" style="background-image:var(--ds-feature-eco-pill-grad);color:var(--ds-text-on-accent)" class="flex h-[var(--ds-height-m)] w-24 items-center justify-center gap-2 rounded-full text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-medium transition-colors" href="/eco"><span aria-hidden="true" class="size-2 shrink-0 rounded-full" style="background-color:currentColor"></span>Eco</a><a class="flex h-[var(--ds-height-m)] w-24 items-center justify-center gap-2 rounded-full text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-medium transition-colors text-[var(--ds-interactive-secondary-fg-default)] hover:bg-[var(--ds-interactive-tertiary-bg-hover)]" href="/private"><span aria-hidden="true" class="size-2 shrink-0 rounded-full" style="background-color:var(--ds-feature-private-accent)"></span>Private</a><a class="flex h-[var(--ds-height-m)] w-24 items-center justify-center gap-2 rounded-full text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-medium transition-colors text-[var(--ds-interactive-secondary-fg-default)] hover:bg-[var(--ds-interactive-tertiary-bg-hover)]" href="/true"><span aria-hidden="true" class="size-2 shrink-0 rounded-full" style="background-color:var(--ds-feature-true-accent)"></span>True</a><a class="flex h-[var(--ds-height-m)] w-24 items-center justify-center gap-2 rounded-full text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-medium transition-colors text-[var(--ds-interactive-secondary-fg-default)] hover:bg-[var(--ds-interactive-tertiary-bg-hover)]" href="/smart"><span aria-hidden="true" class="size-2 shrink-0 rounded-full" style="background-color:var(--ds-feature-smart-accent)"></span>Smart</a></nav><div class="flex shrink-0 items-center gap-2"><div class="relative"><div class="hidden md:block"><button type="button" aria-label="More pages" class="flex size-10 items-center justify-center rounded-full border border-foreground
163/[0.08] bg-foreground/[0.03] text-[var(--ds-interactive-secondary-fg-default)] outline-none transition-colors hover:bg-foreground/[0.08] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-1 data-[state=open]:bg-[var(--ds-interactive-secondary-bg-active,#c2c4c6)] group !w-auto gap-1.5 px-3" id="radix-_R_j97b_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-5 transition-transform duration-200 group-data-[state=open]:rotate-45" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg><span class="text-sm font-medium">More</span></button></div><button type="button" aria-label="More pages" aria-expanded="false" class="flex size-10 items-center justify-center rounded-full border border-foreground/[0.08] bg-foreground/[0.03] text-[var(--ds-interactive-secondary-fg-default)] outline-none transition-colors hover:bg-foreground
163/[0.08] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-1 data-[state=open]:bg-[var(--ds-interactive-secondary-bg-active,#c2c4c6)] group md:hidden" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-5 transition-transform duration-200 group-data-[state=open]:rotate-45" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button></div><div class="relative"><button type="button" aria-haspopup="listbox" aria-expanded="false" aria-label="Choose language" class="flex h-8 items-center gap-1 rounded-[var(--radius-token-1)] px-2 transition-colors outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-1 text-[var(--ds-interactive-tertiary-fg-default)] hover:bg-[var(--ds-page-elevated)]"><span class="text-xs font-medium uppercase">en</span></button></div><button type="button" aria-label="Switch to dark mode" class="flex size-8 items-center justify-center rounded-[var(--radius-token-1)] transition-colors outline-none text-[var(--ds-interactive-tertiary-fg-default)] hover:bg-[var(--ds-page-elevated)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon h-4 w-4" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button><div class="overflow-hidden transition-[max-width,opacity] duration-300 max-w-[280px] opacity-100"><div class="flex flex-col items-center gap-2"><a href="https://app.discode.ai/sign-in" aria-label="Sign in with Google" class="inline-flex h-12 items-center justify-center rounded-full px-[14px] transition-colors duration-150 bg-[#131314] hover:bg-[#202124]" style="color:#E3E3E3;border:1px solid #8E918F;font-family:var(--font-roboto);font-size:17px;line-height:24px;font-weight:500"><img src="/icons/google.svg" alt="" aria-hidden="true" width="22" height="22" class="shrink-0 sm:mr-3"/><span class="hidden sm:inline">Sign in with Google</span></a></div></div></div></div></header><div class="flex-1"><main class="relative"><div aria-hidden="true" style="position:fixed;inset:0;z-index:0;overflow:hidden"><div style="position:absolute;inset:0;background-color:var(--color-dark-bg);opacity:0;transition:opacity 700ms ease"><div style="position:absolute;inset:0;background:radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--color-grey-1) 7%, transparent), transparent 55%), radial-gradient(circle at 50% 50%, transparent 55%, color-mix(in srgb, var(--color-grey-black) 45%, transparent))"></div></div><div style="position:absolute;inset:0;background-color:var(--color-grey-1);opacity:1;transition:opacity 700ms ease"><div style="position:absolute;inset:0;background:radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--color-grey-white) 30%, transparent), transparent 55%)"></div></div><div style="position:absolute;inset:0;background-color:color-mix(in srgb, var(--color-green-5) 10%, transparent)"></div></div><div class="relative z-10 -mt-16"><section class="relative w-full overflow-hidden" data-page-hero="true"><div class="absolute inset-0" style="background-image:url(/illustrations/Gloria_Greenor_Webheader_TileBackground.webp);background-repeat:repeat-x;background-position:center;background-size:auto 100%" aria-hidden="true"></div><div class="pointer-events-none absolute inset-x-0 top-0 z-[5] h-36 bg-gradient-to-b from-black/80 via-black/40 to-transparent" aria-hidden="true"></div><div class="pointer-events-none absolute inset-0 z-[5]" style="background:linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.25) 50%, rgba(0,0,0,0.3) 100%)" aria-hidden="true"></div><img src="/illustrations/Gloria_Greenor_Webheader.webp" alt="Gloria Greenor — Eco-Queen" class="pointer-events-none absolute bottom-0 -right-[210px] z-[6] h-[74%] w-auto max-w-none select-none object-contain object-bottom sm:-right-[10%] sm:h-[76%] md:right-[6%] md:h-[90%] md:max-w-[58%]" style="transform-origin:bottom right;transform:translateX(50px) scale(1)" draggable="false"/><div class="relative z-10 mx-auto w-full max-w-[824px] px-4"><div class="relative flex min-h-[454px] max-w-[55%] flex-col justify-end gap-3 pt-24 pb-8 md:pt-28 md:pb-12"><div aria-hidden="true" class="pointer-events-none absolute -inset-x-12 -inset-y-8 -z-10" style="background:radial-gradient(68% 78% at 33
163% 70%, rgba(0,0,0,0.8), rgba(0,0,0,0.5) 52%, transparent 82%);filter:blur(12px)"></div><p class="font-headline text-[length:var(--ds-font-size-body-md)] text-white">CO₂, water, energy — visible per request.</p><h1 class="font-headline text-[length:var(--ds-font-size-headline-lg)] leading-[1.05] tracking-[-0.03em] text-white">What does your question cost the planet?</h1><p class="text-[length:var(--ds-font-size-title-lg)] leading-[var(--ds-line-height-title-lg)] whitespace-pre-line text-white" style="text-shadow:0 1px 3px rgba(0,0,0,0.63)">What you can&#x27;t see, you can&#x27;t manage.
164Every answer shows you a consumption readout.
165Not a guilty conscience — a dashboard.</p></div></div></section></div><div class="relative z-10 flex flex-col items-center gap-4 pb-6 md:gap-6 md:pb-9"><div class="mx-auto w-full max-w-[680px] px-4 flex justify-center pt-9"><div class="transition-opacity duration-300" style="opacity:1"><div class="flex flex-col items-center gap-2"><a href="https://app.discode.ai/sign-in" aria-label="Sign in with Google" class="inline-flex h-12 items-center justify-center rounded-full px-[14px] transition-colors duration-150 bg-[#131314] hover:bg-[#202124]" style="color:#E3E3E3;border:1px solid #8E918F;font-family:var(--font-roboto);font-size:17px;line-height:24px;font-weight:500"><img src="/icons/google.svg" alt="" aria-hidden="true" width="22" height="22" class="mr-3 shrink-0"/><span>Sign in with Google</span></a><span class="text-[length:var(--ds-font-size-body-md)]" style="color:var(--ds-text-secondary)">Start free – No credit card</span></div></div></div><section class="mx-auto w-full max-w-[680px] px-4"><div class="rounded-[var(--radius-token-5)] bg-card/80 backdrop-blur supports-[backdrop-filter]:bg-card/70 px-6 py-6 text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-muted)]" style="box-shadow:var(--ds-shadow-drop-sm)"><p>Every week we read about the energy hunger and cooling-water thirst of AI models, about new data centres and even new nuclear plants just to scale AI. But how much do I actually consume? And how can I steer and shrink my own footprint?</p><p class="mt-4">Every AI answer uses electricity, water and CO₂ — but no provider shows how much comes out the tailpipe. And for simple questions the most powerful model often runs. “You drive the van to the ice-cream parlour around the corner — and nobody tells you a bike or your own two feet would have done the job.”</p></div></section><section class="mx-auto w-full max-w-[680px] px-4 flex flex-col gap-4 pt-4 md:gap-6 md:pt-6"><div class="flex flex-col gap-4 text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]">discode makes the ecological footprint of every request visible and routes by default as resource-efficiently as your settings and the task allow. The Eco-Score is an estimate.</div><p class="text-center font-headline text-[length:var(--ds-font-size-headline-sm)] leading-[var(--ds-line-height-headline-sm)] text-[var(--ds-text-primary)]">Ask a question<span> —</span><br/>and see what it costs.</p></section><div class="flex w-full flex-col items-center"><section class="mx-auto w-full max-w-[680px] px-4 flex flex-col items-center gap-3 border-b border-[var(--ds-border-subtle)] py-3 md:py-4"><div class="flex w-full flex-col gap-1.5 p-2"><h3 class="text-[length:var(--ds-font-size-title-lg)] leading-[var(--ds-line-height-title-lg)] font-semibold text-[var(--ds-text-primary)]">Eco-Score</h3><p class="text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]">Every answer shows right away what it cost: CO₂ in grams, water in millilitres, energy in watt-hours — collected in the Eco-Stats panel. One of the very few AI services that makes these figures visible.</p><details class="mt-2"><summary class="cursor-pointer text-[length:var(--ds-font-size-body-md)] text-[var(--ds-text-secondary)] hover:text-[var(--ds-text-primary)] transition-colors">More details</summary><p class="mt-2 text-[length:var(--ds-font-size-body-md)] leading-[var(--ds-line-height-body-md)] text-[var(--ds-text-muted)]">Calculation: (tokens / 1000) × provider factor × model factor, based on public research (Epoch AI 2024, IEA 2024, Li et al. 2023). </p></details></div><div class="flex w-full justify-center"><svg viewBox="0 108 480 184" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="h-auto w-full max-w-[180px] text-[var(--ds-text-primary)]"><g fill="currentColor"><path d="M120.418,155.3403l53.2491-8.8406c6.5568-1.0886,12.3554,1.8064,12.6044,6.293l1.7312,15.8192c.2244,4.0425-4.1726,7.9288-10.0804,8.9096l-51.5069,8.5513c-5.9078.9808-11.3248-1.2762-12.4187-5.1742l-3.4735-15.5299c-1.2141-4.3264,3.3378-8.9398,9.8947-10.0284Z"></path><path d="M303.0258,148.429l53.2491-8.8406c6.5568-1.0886,12.3554,1.8064,12.6044,6.293l1.7312,15.8192c.2244,4.0425-4.1726,7.9288-10.0804,8.9096l-51.5069,8.5513c-5.9078.9808-11.3248-1.2762-12.4187-5.1742l-3.4735-15.5299c-1.2141-4.3264,3.3378-8.9398,9.8947-10.0284Z"></path><path d="M52.5585,174.4772l40.5047-2.4226c4.9876-.2983,9.2554,5.0042,9.2771,11.5262l.7203,23.1615c.0196,5.8764-3.442,10.6307-7.9358,10.8995l-39.1795,2.3434c-4.4939.2688-8.4974-4.039-9.1784-9.8759l-2.0456-23.0822c-.7558-6.4781,2.8496-12.2515,7.8371-12.5498Z"></path><path d="M378.0293,167.3788l45.4997-10.4813c5.6026-1.2906,11.2701,3.097,12.3195,9.5374l4.4553,22.7435c.9456,5.8029-2.2284,11.1921-7.2764,12.355l-44.0111,10.1383c-5.048,1.1629-10.2599-2.2946-11.9484-7.9264l-5.944-22.4005c-1.874-6.2505,1.3027-12.6754,6.9053-13.966Z"></path></g><circle fill="#6be58e" cx="240" cy="200" r="84.7224"></circle><g fill="currentColor"><path d="M141.4286,192.4955l95.3926,6.0993c11.7462.751,20.5555,8.5665,19.149,16.9887l-3.4887,30.0561c-1.2672,7.5885-10.4357,12.9359-21.0191,12.2592l-92.2715-5.8998c-10.5835-.6767-18.9962-7.1482-19.2866-14.8363l.3676-30.2556c-.3224-8.5327,9.4106-15.1626,21.1567-14.4116Z"></path><path d="M362.0833,247.1935l-66.563,14.0229c-8.1963,1.7267-16.1574-3.9924-17.3054-12.4318l-5.1403-29.7978c-1.0344-7.604,3.8788-14.6906,11.2638-16.2464l64.3852-13.5641c7.3849-1.5558,14.7395,2.9463,16.8608,10.3214l7.3181,29.339c2.3543,8.1853-2.6229,16.6301-10.8192,18.3568Z"></path></g></svg></div></section><section class="mx-auto w-full max-w-[680px] px-4 flex flex-col items-center gap-3 border-b border-[var(--ds-border-subtle)] py-3 md:py-4"><div class="flex w-full flex-col gap-1.5 p-2"><h3 class="text-[length:var(--ds-font-size-title-lg)] leading-[var(--ds-line-height-title-lg)] font-semibold text-[var(--ds-text-primary)]">What we capture per request</h3><p class="text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]">Three values sit behind every Eco-Score. Here&#x27;s what they mean — and why the data centre&#x27;s location in particular makes the difference.</p></div><div class="flex w-full justify-center"><div class="flex w-full flex-col gap-4"><div class="flex h-14 w-full items-center justify-center gap-2 rounded-[var(--radius-token-full)] bg-[var(--ds-page-elevated)] p-4 text-[length:var(--ds-font-size-body-sm)] text-[var(--ds-text-muted)]" style="box-shadow:var(--ds-shadow-drop-sm)"><span class="inline-flex items-center gap-2"><span class="inline-flex items-center gap-1" style="color:var(--ds-text-muted)"><span class="text-[11px] font-medium"><span class="font-semibold">CO</span>₂</span><span>~<!-- -->3.15<!-- -->g</span></span><span class="text-foreground opacity-30">·</span><span class="inline-flex items-center gap-1" style="color:var(--ds-text-muted)"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="size-3" aria-label="H₂O" role="img">
165<path fill="currentColor" d="M16.2956,8.1468l-1.7802-2.4432c-.6462-.8855-1.1996-1.8091-1.701-2.764l-.0167.0373c-.1494-.288-.4511-.4854-.7987-.4854-.3398,0-.6371.1897-.7879.4702l-.0244-.026c-.4863.929-1.0242,1.838-1.5912,2.6185l-.8917,1.2276c-.695.9579-1.3915,1.867-1.9965,2.8844-.4619.7773-.8535,1.5568-1.1354,2.4096-.2622.791-.4648,1.5896-.4786,2.4432-.0335,1.9554.8672,3.8515,2.3228,5.1797,2.6748,2.4385,6.5903,2.4058,9.2331-.0556,1.3854-1.2909,2.3167-3.228,2.2556-5.1271-.0746-2.3112-1.2665-4.5282-2.6092-6.3694h0v.0002Z"></path></svg><span>~<!-- -->25.90<!-- -->ml</span></span><span class="text-foreground opacity-30">·</span><span class="inline-flex items-center gap-1" style="color:var(--ds-text-muted)"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="size-3" aria-label="Energy" role="img"><path fill="currentColor" d="M8.4912,3.637L3.2634,13.488c-.1707.3216.0996.6998.459.6427l5.5882-.8879c.3666-.0583.6371.3347.4515.6563l-4.0133,6.9592c-.2466.4277.2878.8758.6659.5586l15.0137-12.5952c.3252-.2728.1154-.8025-.3083-.7788l-6.3218.3542c-.3794.0213-.6065-.4152-.3714-.7138l3.5394-4.4928c.2416-.3068-.0048-.7532-.3932-.7119l-8.7388.9265c-.1458.0155-.2745.1025-.3433.2319Z"></path></svg><span>~<!-- -->16.75<!-- -->Wh</span></span></span><span class="inline-flex font-medium uppercase tracking-wide" style="font-size:var(--ds-font-size-caption-sm);line-height:var(--ds-line-height-caption-sm);color:var(--composer-accent)">Beta</span></div><div class="grid w-full grid-cols-1 gap-3 sm:grid-cols-3"><div class="flex flex-col gap-2 rounded-[var(--radius-token-5)] bg-[var(--ds-page-elevated)] p-4" style="box-shadow:var(--ds-shadow-drop-sm)"><h4 class="text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-semibold text-[var(--ds-text-primary)]">CO₂</h4><p class="text-[length:var(--ds-font-size-body-lg)] leading-[var(--ds-line-height-body-lg)] text-[var(--ds-text-primary)]">A server in France on nuclear power has a completely different footprint than one in China on coal. Exactly this difference becomes visible here — Scope 2 (purchased electricity, market-based); EU data centres consistently come out better.</p><p class="mt-auto text-[length:var(--ds-font-size-caption-sm)] leading-[var(--ds-line-height-caption-sm)] text-[var(--ds-text-muted)]">GHG Protocol — Scope 2 Guidance</p></div><div class="flex flex-col gap-2 rounded-[var(--radius-token-5)] bg-[var(--ds-page-elevated)] p-4" style="box-shadow:var(--ds-shadow-drop-sm)"><h4 class="text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-semibold text-[var(--ds-text-primary)]">Water</h4><p class="text-[length:var(--ds-font-size-body-lg)] leading-[var(--ds-line-height-body-lg)] text-[var(--ds-text-primary)]">AI data centres cool themselves with water — depending on location and season, roughly half a litre per short conversation. Modern EU sites with air cooling reduce that significantly. We show you both ends of the spectrum.</p><p class="mt-auto text-[length:var(--ds-font-size-caption-sm)] leading-[var(--ds-line-height-caption-sm)] text-[var(--ds-text-muted)]">Li et al., “Making AI Less Thirsty” (CACM 2025)</p></div><div class="flex flex-col gap-2 rounded-[var(--radius-token-5)] bg-[var(--ds-page-elevated)] p-4" style="box-shadow:var(--ds-shadow-drop-sm)"><h4 class="text-[length:var(--ds-font-size-title-md)] leading-[var(--ds-line-height-title-md)] font-semibold text-[var(--ds-text-primary)]">Energy</h4><p class="text-[length:var(--ds-font-size-body-lg)] leading-[var(--ds-line-height-body-lg)] text-[var(--ds-text-primary)]">An estimate of your answer&#x27;s electricity use — based on model size, token count and the data centre&#x27;s efficiency (PUE).</p></div></div></div></div></section><section class="mx-auto w-full max-w-[680px] px-4 flex flex-col items-center gap-3 border-b border-[var(--ds-border-subtle)] py-3 md:py-4"><div class="flex w-full flex-col gap-1.5 p-2"><h3 class="text-[length:var(--ds-font-size-title-lg)] leading-[var(--ds-line-height-title-lg)] font-semibold text-[var(--ds-text-primary)]">What you pay</h3><p class="text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]">Not just the ecological price — the financial one too. Every request shows its cost right in the chat, not in a monthly bill you didn&#x27;t see coming.</p></div><div class="flex w-full justify-center"><svg viewBox="0 0 480 400" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="h-auto w-full max-w-[180px] text-[var(--ds-text-primary)]"><circle fill="#ff992a" cx="240" cy="200" r="84.7224"></circle><g fill="currentColor"><path d="M303.3631,194.6414l-17.2589-14.6457c-2.1252-1.8034-1.9423-5.4189.3974-7.8592l8.049-8.9129c2.1082-2.1987,5.2206-2.6426,7.1354-1.0177l16.6942,14.1665c1.9148,1.6249,1.9832,4.7681.1569,7.2059l-7.4844,9.3921c-2.027,2.7057-5.5646,3.4744-7.6897,1.671Z"></path><path d="M150.3961,192.9422l36.0982,9.1144c4.445,1.1223,7.3615,4.4386,6.3399,7.2087l-3.0612,9.9986c-.9205,2.4959
165-4.7312,3.6446-8.7362,2.6334l-34.9171-8.8162c-4.005-1.0112-6.8473-3.8397-6.5162-6.4844l1.8801-10.2968c.3675-2.9353,4.4676-4.48,8.9125-3.3577Z"></path><path d="M143.8822,218.7822l36.0982,9.1144c4.445,1.1223,7.3615,4.4386,6.3399,7.2087l-3.0612,9.9986c-.9205,2.4959-4.7312,3.6446-8.7362,2.6334l-34.9171-8.8162c-4.005-1.0112-6.8473-3.8397-6.5162-6.4844l1.8801-10.2968c.3675-2.9353,4.4676-4.48,8.9125-3.3577Z"></path><path d="M231.4282,146.0449c-.4194-2.9368-2.8174-5.0198-5.2129-4.5278l-19.4561,3.9937c-2.3955.4917-3.7793,3.3511-3.0073,6.2153l2.436,10.2522c.6953,2.5808,2.9033,4.2346,5.0615,3.7915l18.8193-3.863c2.1587-.4431,3.5366-2.833,3.1587-5.479l-1.7993-10.3828Z"></path><path d="M234.9321,81.2256l-3.7954-3.0171-1.7588-11.6238c-.416-4.166-5.6445-6.7148-11.3652-5.5405l-46.457,9.5361c-5.7202,1.1743-9.522,5.5767-8.2637,9.5698l3.7388,14.3552c1.1338,3.5979,5.9985,5.563,11.1528,4.5049l21.3516-4.3828-12.707,14.1543c-3.2651,3.6372-4.2275,8.2285-2.2065,10.5264l4.8369,4.8972c-.0718,1.2288.3149,2.3906,1.1948,3.1804l14.2959,12.834c1.6396,1.4722,4.3804,1.1587,6.2832-.718l7.2778-7.6206c2.1123-2.0833,2.3608-5.2498.541-6.8835l-8.3174-7.4673,22.6289-25.2065c3.624-4.0366,4.3457-9.1421,1.5693-11.0981Z"></path><path d="M356.8509,161.1793l-32.4854,38.2816c-4.0001,4.7138-9.6542,6.3155-12.2906,3.4816l-9.8937-9.4729c-2.3754-2.5534-1.4248-7.8147,2.1794-12.0619l31.4225-37.0291c3.6041-4.2472,8.6407-6.0413,11.5465-4.113l10.9565,8.2204c3.2251,2.1401,2.5648,7.9795-1.4353,12.6933Z"></path><path d="M350.6653,305.6991l-43.1739-92.0461c-2.9475-6.2841-10.4311-8.9888-16.7155-6.0412l-56.5058,26.5042c-6.2838,2.9475-8.9888,10.4311-6.0412,16.7149l43.1739,92.0461c2.9481,6.2841,10.4317,8.9888,16.7155,6.0412l56.5058-26.5039c6.2838-2.9475,8.9888-10.4311,6.0412-16.7152ZM274.521,254.3276c-5.9652,0-10.8007-4.8355-10.8007-10.8007s4.8355-10.8007,10.8007-10.8007,10.8007,4.8355,10.8007,10.8007-4.8355,10.8007-10.8007,10.8007Z"></path></g><g fill="#fff"><path d="M282.991,317.9776l8.5677-42.2284c1.055-5.1998,4.2502-8.8468,6.9455-7.9276l9.7237,2.5994c2.4285.8282,3.572,5.0936,2.6214,9.7787l-8.2874,40.8468c-.9506,4.6851-3.6731,8.2025-6.2415,8.0639l-10.004-1.2177c-2.8506-.1539-4.3804-4.7151-3.3254-9.9149Z"></path><path d="M329.1402,308.4811l-2.4007,12.0921c-.2956,1.489-2.5234,2.2887-4.8427,1.7384l-8.2882-1.7656c-2.0897-.4958-3.5003-1.9174-3.234-3.259l2.3221-11.6965c.2663-1.3416,2.1195-2.1486,4.2483-1.8503l8.3667,1.37c2.3628.3312,4.124,1.8819,3.8284,3.3709Z"></path><path d="M283.9037,277.1105l-2.4007,12.0921c-.2956,1.489-2.5234,2.2887-4.8427,1.7384l-8.2882-1.7656c-2.0897-.4958-3.5003-1.9174-3.234-3.259l2.3221-11.6965c.2663-1.3416,2.1195-2.1486,4.2483-1.8503l8.3667,1.37c2.3628.3312,4.124,1.8819,3.8284,3.3709Z"></path></g></svg></div></section><section class="mx-auto w-full max-w-[680px] px-4 flex flex-col items-center gap-3 border-b border-[var(--ds-border-subtle)] py-3 md:py-4"><div class="flex w-full flex-col gap-1.5 p-2"><h3 class="text-[length:var(--ds-font-size-title-lg)] leading-[var(--ds-line-height-title-lg)] font-semibold text-[var(--ds-text-primary)]">Eco-Routing</h3><p class="text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]">By default discode picks the most frugal model that can handle your task — most requests run in the most efficient tier this way. Bike instead of van.</p></div></section><section class="mx-auto w-full max-w-[680px] px-4 flex flex-col items-center gap-3 border-b border-[var(--ds-border-subtle)] py-3 md:py-4"><div class="flex w-full flex-col gap-1.5 p-2"><h3 class="text-[length:var(--ds-font-size-title-lg)] leading-[var(--ds-line-height-title-lg)] font-semibold text-[var(--ds-text-primary)]">Eco-Slider</h3><p class="text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]">A slider from 1 to 5 right below the text input, exactly where you can also manually steer quality and speed with your Turntables. The higher you pull it, the more discode prioritises frugal models. How the automatic model choice works behind the scenes is shown by <a class="underline underline-offset-2 hover:opacity-70 transition-opacity" href="/smart">Smart</a>.</p></div><div class="flex w-full justify-center"><div class="flex w-full items-center justify-center rounded-[var(--radius-token-5)] bg-[var(--ds-page-elevated)] px-5 py-4" style="box-shadow:var(--ds-shadow-drop-sm)"><div class="flex w-[282px] items-center gap-3"><svg class="size-[38px] shrink-0" width="19" height="19" viewBox="0 0 24 24" aria-hidden="true"><circle fill="#6be58e" cx="11.9886" cy="12" r="7.6357"></circle><path fill="#6be58e" d="M14.0533.6922v2.3762c0,.2926-.3026.5235-.6578.502l-1.2635-.0389c-.32-.0194-.5677-.2384-.5677-.502V.731c0-.2636.2476-.4826.5677-.502l1.2635-.
1650389c.3552-.0215.6578.2094.6578.502Z"></path><path fill="#6be58e" d="M11.7348,23.3099v-2.3663c0-.2914.3026-.5214.6578-.4999l1.2635.0387c.32.0193.5677.2374.5677.4999v2.2889c0,.2625-.2476.4806-.5677.4999l-1.2635.0387c-.3552.0214-.6578-.2085-.6578-.4999Z"></path><path fill="#6be58e" d="M21.2117,10.9758h2.0515c.2526,0,.452.3026.4334.6578l-.0336,1.2635c-.0167.32-.2058.5677-.4334.5677h-1.9844c-.2276,0-.4167-.2476-.4334-.5677l-.0336-1.2635c-.0186-.3552.1808-.6578.4334-.6578Z"></path><path fill="#6be58e" d="M.7992,11.1899h2.3461c.2889,0,.5169.3026.4956.6578l-.0384,1.2635c-.0192.32-.2354.5677-.4956.5677H.8376c-.2603,0-.4765-.2476-.4956-.5677l-.0384-1.2635c-.0213-.3552.2068-.6578.4956-.6578Z"></path><path fill="#6be58e" d="M21.345,4.3757l-1.7092,1.7092c-.2105.2105-.5906.1626-.8263-.1041l-.8655-.9214c-.2124-.2403-.2299-.5729-.0403-.7625l1.6533-1.6533c.1896-.1896.5222-.1721.7625.0403l.9214.8655c.2667.2357.3145.6158.1041.8263Z"></path><path fill="#6be58e" d="M2.972,20.2651l1.8678-1.8678c.23-.23.6255-.1975.8598.0706l.8629.924c.2111.2416.214.5888.0068.796l-1.8067,1.8067c-.2072.2072-.5544.2043-.796-.0068l-.924-.8629c-.2681-.2342-.3006-.6298-.0706-.8598Z"></path><path fill="#6be58e" d="M19.477,21.0205l-1.5814-1.5814c-.1947-.1947-.1344-.5624.1311-.7993l.9193-.8676c.2392-.2134.56-.2427.7355-.0673l1.5297,1.5297c.1755.1755.1461.4963-.0673.7355l-.8676.9193c-.2368.2655-.6045.3258-.7993.1311Z"></path><path fill="#6be58e" d="M4.3757,2.3432l1.8628,1.8628c.2294.2294.1964.6244-.0716.8587l-.9239.863c-.2415.2111-.5883.2145-.7949.0079l-1.8019-1.8019c-.2067-.2067-.2032-.5534.0079-.7949l.863-.9239c.2343-.2681.6293-.301.8587-.0716Z"></path><path fill="#fff" d="M7.9371,15.0429c.7954.9645,2.3855,1.5035,3.8108,1.4853,1.3724-.0176,2.6245-.528,3.5369-1.326.665-.5816,1.0981-1.6046-.1701-1.8991-1.7325-.4023-4.1248-.6874-6.8215-.2465-1.3415.2193-.9106,1.2921-.3826,1.9537.0087.0109.0176.0218.0265.0327Z"></path><path fill="#181615" d="M11.8363,8.6973c-.0932,1.1741-2.0189,2.7098-4.2299,2.5342-2.211-.1756-3.8702-1.996-3.7769-3.1701.0932-1.1741,1.9118-1.361,4.1228-1.1854,2.211.1756,3.9773.6472,3.884,1.8213Z"></path><path fill="#181615" d="M20.2728,9.3673c-.0932,1.1741-2.0189,2.7098-4.2299,2.5342s-3.8702-1.996-3.7769-3.1701,1.9118-1.361,4.1228-1.1854,3.9773.6472,3.884,1.8213Z"></path></svg><div class="relative flex h-10 flex-1 cursor-pointer items-center rounded-full select-none" style="background:var(--ds-grey-3)" role="slider" aria-valuenow="3" aria-valuemin="1" aria-valuemax="5" aria-label="Eco" tabindex="0"><div class="absolute inset-y-0 left-0 flex items-center rounded-full px-3 transition-all duration-150" style="width:60%;background:var(--ds-turntable-5);min-width:42%"><span class="truncate text-sm font-semibold text-[var(--color-grey-10)]">Eco</span></div><div class="absolute flex size-8 items-center justify-center rounded-full bg-[var(--ds-page-elevated)] text-sm font-bold text-[var(--ds-text-primary)] shadow-sm transition-all duration-150" style="left:calc(60% - 16px)">3</div></div></div></div></div></section></div><section class="mx-auto w-full max-w-[680px] px-4"><div class="rounded-[24px] bg-[var(--ds-page-elevated)] px-6 py-6 text-[length:var(--ds-font-size-body-lg)] leading-relaxed text-[var(--ds-text-primary)]"><strong>Honest limits:<!-- --> </strong><p>The Eco-Score doesn&#x27;t give exact kWh, doesn&#x27;t measure Scope 3 precisely, guarantees no certified data and doesn&#x27;t compute cooling water exactly — estimates based on public research and the little data the big techs hand over. </p><p class="mt-4">We’re on it: in a working group with ESG-Cockpit and the team behind it, we’re constantly refining meaningful impact analyses. If you have insights, data, or ideas to share, we’d love to hear from you.</p></div></section><div class="mx-auto w-full max-w-[680px] px-4">
165<div class="flex items-start gap-4 rounded-[var(--radius-token-5)] bg-[var(--ds-page-elevated)] px-5 py-5"><img alt="Gloria Greenor" loading="lazy" width="80" height="80" decoding="async" data-nimg="1" class="h-20 w-20 shrink-0 rounded-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fillustrations%2FEco_Portrait_01_rund.png&amp;w=96&amp;q=75&amp;dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8 1x, /_next/image?url=%2Fillustrations%2FEco_Portrait_01_rund.png&amp;w=256&amp;q=75&amp;dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8 2x" src="/_next/image?url=%2Fillustrations%2FEco_Portrait_01_rund.png&amp;w=256&amp;q=75&amp;dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8"/><div class="min-w-0"><p class="text-[length:var(--ds-font-size-body-lg)] font-semibold leading-tight text-[var(--ds-text-primary)]">Gloria Greenor</p><p class="mt-1 text-[length:var(--ds-font-size-body-md)] leading-relaxed text-[var(--ds-text-secondary)]">Gloria Greenor is discode’s Eco-Queen. She keeps tabs on what your AI usage costs the planet and makes sure only as much compute runs as your question actually needs. No finger-wagging — just guidance with a wink.</p></div></div></div><nav class="mx-auto w-full max-w-[680px] px-4 flex items-center justify-between py-4"><a class="inline-flex h-10 items-center rounded-full px-3 text-[length:var(--ds-font-size-body-lg)] text-[var(--ds-text-secondary)] underline underline-offset-4 transition-colors hover:text-[var(--ds-text-primary)]" href="/smart">Smart</a><a class="inline-flex h-10 items-center rounded-full px-3 text-[length:var(--ds-font-size-body-lg)] text-[var(--ds-text-secondary)] underline underline-offset-4 transition-colors hover:text-[var(--ds-text-primary)]" href="/">Overview</a><a class="inline-flex h-10 items-center rounded-full px-3 text-[length:var(--ds-font-size-body-lg)] text-[var(--ds-text-secondary)] underline underline-offset-4 transition-colors hover:text-[var(--ds-text-primary)]" href="/private">Private</a></nav></div></main><!--$--><!--/$--></div><footer class="relative z-10 bg-background px-4 py-6 text-xs"><div class="mx-auto max-w-2xl flex flex-col items-center gap-4 text-center"><p class="text-foreground font-medium">discode.ai<!-- --> <span class="text-muted-foreground">|</span> <span class="text-muted-foreground">designed &amp; built in Austria</span></p><p class="text-muted-foreground"><a href="mailto:[email protected]" class="underline hover:text-foreground transition-colors">[Give feedback]</a><span class="mx-2">·</span><a href="https://linkedin.com/company/discode-ai" target="_blank" rel="noopener noreferrer" class="underline hover:text-foreground transition-colors">LinkedIn</a></p><div class="flex flex-wrap justify-center items-center gap-x-2 gap-y-1 text-muted-foreground"><a class="hover:text-foreground transition-colors px-2 py-1" href="/">Home</a><a class="hover:text-foreground transition-colors px-2 py-1" href="/privacy">Privacy</a><a class="hover:text-foreground transition-colors px-2 py-1" href="/terms">Terms</a><a class="hover:text-foreground transition-colors px-2 py-1" href="/imprint">Imprint</a><button type="button" class="hover:text-foreground transition-colors px-2 py-1">Cookie Settings</button></div></div></footer><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
165<script src="/_next/static/chunks/3vb8yit78f_ky.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8" id="_R_" async=""></script>
165<script>(self.__next_f=self.__next_f||[]).push([0])</script>
165<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[55587,[\"/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"default\"]\n4:I[58256,[\"/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"default\"]\n5:I[56517,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1nc4gydvqjdnz.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"EcoContent\"]\n6:I[62991,[\"/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[62991,[\"/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"ViewportBoundary\"]\nc:I[62991,[\"/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"MetadataBoundary\"]\ne:I[91770,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"default\",1]\n:HL[\"/_next/static/chunks/09nu0k86zkxcf.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"style\"]\n:HL[\"/_next/static/chunks/2kl6bj54j773l.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"style\"]\n:HL[\"/_next/static/media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93ed3db1f6e46d19-s.p.3wilzbrt38scn.woff2?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
165<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"eco\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"eco\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/09nu0k86zkxcf.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2kl6bj54j773l.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1nc4gydvqjdnz.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/09nu0k86zkxcf.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2kl6bj54j773l.css?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script>
165<script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script>
165<script>self.__next_f.push([1,"10:I[91106,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"ClientClerkProvider\"]\n11:T164d,"])</script>
165<script>self.__next_f.push([1,"\n(function () {\n  var root = typeof globalThis !== \"undefined\" ? globalThis : window;\n\n  function define(target, key, value) {\n    try {\n      Object.defineProperty(target, key, {\n        configurable: true,\n        writable: true,\n        value: value\n      });\n    } catch (_) {\n      target[key] = value;\n    }\n  }\n\n  if (typeof root.Promise !== \"undefined\" \u0026\u0026 typeof root.Promise.withResolvers !== \"function\") {\n    define(root.Promise, \"withResolvers\", function withResolvers() {\n      var resolve;\n      var reject;\n      var promise = new root.Promise(function (res, rej) {\n        resolve = res;\n        reject = rej;\n      });\n      return { promise: promise, resolve: resolve, reject: reject };\n    });\n  }\n\n  if (typeof Array.prototype.at !== \"function\") {\n    define(Array.prototype, \"at\", function at(index) {\n      var list = Object(this);\n      var length = list.length \u003e\u003e\u003e 0;\n      var numericIndex = Number(index) || 0;\n      var relativeIndex = numericIndex \u003c 0 ? Math.ceil(numericIndex) : Math.floor(numericIndex);\n      var resolvedIndex = relativeIndex \u003e= 0 ? relativeIndex : length + relativeIndex;\n      return resolvedIndex \u003c 0 || resolvedIndex \u003e= length ? undefined : list[resolvedIndex];\n    });\n  }\n\n  if (typeof Array.prototype.findLast !== \"function\") {\n    define(Array.prototype, \"findLast\", function findLast(predicate, thisArg) {\n      if (this == null) throw new TypeError(\"Array.prototype.findLast called on null or undefined\");\n      if (typeof predicate !== \"function\") throw new TypeError(\"predicate must be a function\");\n      var list = Object(this);\n      var length = list.length \u003e\u003e\u003e 0;\n      for (var i = length - 1; i \u003e= 0; i--) {\n        var value = list[i];\n        if (predicate.call(thisArg, value, i, list)) return value;\n      }\n      return undefined;\n    });\n  }\n\n  if (typeof Array.prototype.findLastIndex !== \"function\") {\n    define(Array.prototype, \"findLastIndex\", function findLastIndex(predicate, thisArg) {\n      if (this == null) throw new TypeError(\"Array.prototype.findLastIndex called on null or undefined\");\n      if (typeof predicate !== \"function\") throw new TypeError(\"predicate must be a function\");\n      var list = Object(this);\n      var length = list.length \u003e\u003e\u003e 0;\n      for (var i = length - 1; i \u003e= 0; i--) {\n        if (predicate.call(thisArg, list[i], i, list)) return i;\n      }\n      return -1;\n    });\n  }\n\n  if (typeof String.prototype.replaceAll !== \"function\") {\n    define(String.prototype, \"replaceAll\", function replaceAll(searchValue, replaceValue) {\n      var source = String(this);\n      if (searchValue instanceof RegExp) {\n        if (!searchValue.global) throw new TypeError(\"replaceAll requires a global RegExp\");\n        return source.replace(searchValue, replaceValue);\n      }\n      return source.split(String(searchValue)).join(String(replaceValue));\n    });\n  }\n\n  if (\n    typeof root.crypto !== \"undefined\" \u0026\u0026\n    typeof root.crypto.randomUUID !== \"function\" \u0026\u0026\n    typeof root.crypto.getRandomValues === \"function\"\n  ) {\n    define(root.crypto, \"randomUUID\", function randomUUID() {\n      var bytes = new Uint8Array(16);\n      root.crypto.getRandomValues(bytes);\n      bytes[6] = (bytes[6] \u0026 15) | 64;\n      bytes[8] = (bytes[8] \u0026 63) | 128;\n      var hex = [];\n      for (var i = 0; i \u003c 256; i++) hex[i] = (i + 256).toString(16).slice(1);\n      return (\n        hex[bytes[0]] + hex[bytes[1]] + hex[bytes[2]] + hex[bytes[3]] + \"-\" +\n        hex[bytes[4]] + hex[bytes[5]] + \"-\" +\n        hex[bytes[6]] + hex[bytes[7]] + \"-\" +\n        hex[bytes[8]] + hex[bytes[9]] + \"-\" +\n        hex[bytes[10]] + hex[bytes[11]] + hex[bytes[12]] + hex[bytes[13]] + hex[bytes[14]] + hex[bytes[15]]\n      );\n    });\n  }\n\n  if (typeof root.AbortController !== \"undefined\" \u0026\u0026 typeof root.AbortSignal !== \"undefined\") {\n    if (typeof root.AbortSignal.timeout !== \"function\") {\n      define(root.AbortSignal, \"timeout\", function timeout(ms) {\n        var controller = new root.AbortController();\n        var reason;\n        try {\n          reason = new DOMException(\"Signal timed out.\", \"TimeoutError\");\n        } catch (_) {\n          reason = new Error(\"Signal timed out.\");\n          reason.name = \"TimeoutError\";\n        }\n        root.setTimeout(function () {\n          try {\n            controller.abort(reason);\n          } catch (_) {\n            controller.abort();\n          }\n        }, Math.max(0, Number(ms) || 0));\n        return controller.signal;\n      });\n    }\n\n    if (typeof root.AbortSignal.any !== \"function\") {\n      define(root.AbortSignal, \"any\", function any(signals) {\n        var controller = new root.AbortController();\n        var cleanup = [];\n        var done = false;\n\n        function abortFrom(signal) {\n          if (done) return;\n          done = true;\n          for (var j = 0; j \u003c cleanup.length; j++) cleanup[j]();\n          try {\n            controller.abort(\"reason\" in signal ? signal.reason : undefined);\n          } catch (_) {\n            controller.abort();\n          }\n        }\n\n        for (var i = 0; i \u003c signals.length;
165 i++) {\n          var signal = signals[i];\n          if (signal.aborted) {\n            abortFrom(signal);\n            break;\n          }\n          var onAbort = (function (currentSignal) {\n            return function () {\n              abortFrom(currentSignal);\n            };\n          })(signal);\n          signal.addEventListener(\"abort\", onAbort, { once: true });\n          cleanup.push((function (currentSignal, currentHandler) {\n            return function () {\n              currentSignal.removeEventListener(\"abort\", currentHandler);\n            };\n          })(signal, onAbort));\n        }\n\n        return controller.signal;\n      });\n    }\n  }\n})();\n"])</script>
165<script>self.__next_f.push([1,"2:[\"$\",\"$L10\",null,{\"initialState\":\"$undefined\",\"publishableKey\":\"pk_live_Y2xlcmsuZGlzY29kZS5haSQ\",\"__internal_clerkJSUrl\":\"$undefined\",\"__internal_clerkJSVersion\":\"$undefined\",\"__internal_clerkUIUrl\":\"$undefined\",\"__internal_clerkUIVersion\":\"$undefined\",\"prefetchUI\":\"$undefined\",\"proxyUrl\":\"\",\"domain\":\"\",\"isSatellite\":false,\"signInUrl\":\"\",\"signUpUrl\":\"\",\"signInForceRedirectUrl\":\"\",\"signUpForceRedirectUrl\":\"\",\"signInFallbackRedirectUrl\":\"\",\"signUpFallbackRedirectUrl\":\"\",\"newSubscriptionRedirectUrl\":\"\",\"telemetry\":{\"disabled\":false,\"debug\":false},\"sdkMetadata\":{\"name\":\"@clerk/nextjs\",\"version\":\"7.4.2\",\"environment\":\"production\"},\"unsafe_disableDevelopmentModeConsoleWarning\":false,\"__internal_scriptsSlot\":\"$undefined\",\"children\":[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"light\",\"data-mode\":\"auto\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"inter_1ec0685a-module__ODW2ua__variable outfit_3b950fe4-module__OLzgJq__variable roboto_aee2967e-module__AGNm5q__variable min-h-screen flex flex-col font-sans antialiased\",\"children\":[[\"$\",\"script\",null,{\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$11\"}}],\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\",\"$L17\",\"$L18\",\"$L19\",\"$L1a\"]}]}]}]\n"])</script>
165<script>self.__next_f.push([1,"1b:I[62262,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"ConditionalPageHeader\"]\n1c:I[28111,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"LayoutFooter\"]\n1d:I[16756,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"HtmlLangSync\"]\n1e:I[40244,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"CookieBanner\"]\n1f:I[65215,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"GA4Script\"]\n20:I[81035,[\"/_next/static/chunks/33owx6ps1or_u.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/0eoc4kvejg_qy.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2imuxf_gynyu9.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/403xzh3w3qz7k.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/2sshyyxp_e83t.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/10jh01umr99fo.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"GA4PageView\"]\n12:[\"$\",\"script\",null,{\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem('theme');if(t\u0026\u0026['auto','light','dark'].indexOf(t)!==-1){var r=t==='auto'?(window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light'):t;document.documentElement.setAttribute('data-theme',r);if(r!=='light')document.documentElement.classList.add('dark')}}catch(e){}})()\"}}]\n13:[\"$\",\"script\",null,{\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=location.pathname.split('/')[1];document.documentElement.lang=['de','fr','es','it','pt'].indexOf(s)!==-1?s:'en'}catch(e){}})()\"}}]\n14:[\"$\",\"$L1b\",null,{}]\n"])</script>
165<script>self.__next_f.push([1,"15:[\"$\",\"div\",null,{\"className\":\"flex-1\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script>
165<script>self.__next_f.push([1,"16:[\"$\",\"$L1c\",null,{}]\n17:[\"$\",\"$L1d\",null,{}]\n18:[\"$\",\"$L1e\",null,{}]\n19:[\"$\",\"$L1f\",null,{}]\n1a:[\"$\",\"$7\",null,{\"children\":[\"$\",\"$L20\",null,{}]}]\n"])</script>
165<script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
165<script>self.__next_f.push([1,"21:I[44704,[\"/_next/static/chunks/2p9kux-vw48yj.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"/_next/static/chunks/1124ddmj5g_p8.js?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\"],\"IconMark\"]\n8:null\n"])</script>
165<script>self.__next_f.push([1,"d:[[\"$\",\"title\",\"0\",{\"children\":\"Eco — discode.ai\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"CO2, water, energy — visible per request. A compass, not a measuring device.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://discode.ai/eco\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Eco — discode.ai\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"CO2, water, energy — visible per request. A compass, not a measuring device.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:site_name\",\"content\":\"discode\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image\",\"content\":\"https://discode.ai/opengraph-image?7c5f4275d0c77150\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:alt\",\"content\":\"discode — The good AI\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:title\",\"content\":\"Eco — discode.ai\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:description\",\"content\":\"CO2, water, energy — visible per request. A compass, not a measuring device.\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image\",\"content\":\"https://discode.ai/opengraph-image?7c5f4275d0c77150\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image:alt\",\"content\":\"discode — The good AI\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.1tx48k71htsuq.ico?dpl=dpl_JC1dDLqxEtzRGycdQC8yM3n6pdi8\",\"sizes\":\"468x420\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/icon?92c98a664832d417\",\"alt\":\"$undefined\",\"type\":\"image/png\",\"sizes\":\"512x512\"}],[\"$\",\"link\",\"23\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon?a7c2d8826eade58b\",\"alt\":\"$undefined\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L21\",\"24\",{}]]\n"])</script>
165</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.