𝗕𝘂𝗶𝗹𝗱𝗶𝗻𝗴 𝗮𝗻 𝗔𝗜 𝗖𝗹𝗶𝗺𝗮𝘁𝗲 𝗗𝗲𝗰𝗶𝘀𝗶𝗼𝗻 𝗘𝗻𝗴𝗶𝗻𝗲 𝗶𝗻 𝟭𝟮 𝗛𝗼𝘂𝗿𝘀
Most carbon footprint apps fail.
They give you a number. They give you generic advice. Awareness does not change behavior. Knowing your footprint is 8 tons of CO2 does not tell you what to do next.
I built Climbit to solve this. It is not a calculator. It is a decision engine. It answers one question: What is the best action I can take right now?
The Core Logic
Most tools focus on measurement. Climbit focuses on decisions. The system looks at your:
- Commute
- Home energy
- Food and diet
- Travel
It ranks actions based on carbon reduction, cost, effort, and relevance.
The Engineering Split
I made a critical choice. I separated math from AI.
Large language models are bad at math. They hallucinate numbers. In Climbit, the AI never calculates emissions.
The workflow works like this:
- You provide data via text, voice, or images of receipts.
- Gemini extracts the data into structured JSON.
- A TypeScript engine performs the actual math.
- The AI interprets the results to give you a personal plan.
This keeps the data accurate and the experience personal.
The Tech Stack
- Next.js 15 and React 19
- TypeScript and Tailwind CSS
- Supabase and Clerk
- Google Gemini 1.5 Flash
- Vitest and Playwright
Solving Real Problems
Building this required solving hard technical issues:
- Hydration: Recharts caused errors during server rendering. I fixed this by deferring chart rendering until the client mounts.
- Security: I implemented a token bucket rate limiter. This protects expensive AI endpoints from abuse.
- Accessibility: I used semantic HTML and ARIA labels. Accessibility is a requirement, not an afterthought.
The Lesson
AI speeds up coding. It does not replace architecture.
I spent most of my time on:
- Fixing hydration issues.
- Validating edge cases.
- Strengthening security.
- Improving reliability.
The difference between a demo and a product is in these details. People do not need more climate data. They need better climate decisions.
Optional learning community: https://t.me/GyaanSetuAi