Inspiration

Climate change feels overwhelming. Most people want to do something about it but don't know where to start. Carbon footprint calculators exist, but they're either too complex, too generic, or built for Western contexts. We wanted to build something radically simple, a 2-minute daily habit that gives anyone, anywhere, a clear and personal action plan.

We also noticed that Ghana and West Africa are largely absent from climate tech conversations, despite being among the most vulnerable regions. EcoSnap uses emission factors calibrated for the Ghanaian grid and local lifestyle patterns, making it genuinely relevant to users here.

What it does

EcoSnap is a personal carbon intelligence companion. Every day, you log:

  • Transport — how far you drove, took the bus, train, or flew
  • Food — how many meat, vegetarian, or vegan meals you had
  • Energy — how much electricity you used

EcoSnap instantly calculates your daily carbon footprint in kg CO₂, breaks it down by category, compares it to the global average, and uses Google Gemini AI to generate 3 personalized, science-backed tips specific to your biggest emission source. You earn a badge, track your streak, and see the equivalent number of trees needed to absorb your footprint.

The more you use it, the more meaningful your data becomes.

How we built it

We built EcoSnap as a full production-grade stack, not a demo, a real product:

  • Backend: FastAPI (Python) deployed on Render, handling all calculation logic using verified emission factors from EPA and Our World in Data, calibrated for Ghana's electricity grid (0.55 kg CO₂/kWh)
  • AI: Google Gemini 2.5 Flash via direct REST API, generates personalized tips based on the user's highest emission category
  • Database: Supabase with PostgreSQL, stores every session log, enabling streak tracking and historical data per user session
  • Frontend: React + TanStack Router + Tailwind CSS + Recharts, built with Lovable and deployed on their platform
  • Uptime: UptimeRobot pings the backend every 5 minutes to prevent cold starts on the free tier

The architecture is designed to scale, upgrading from free tiers to paid infrastructure requires zero code changes.

Challenges we ran into

  • Python 3.14 compatibility: pydantic-core's Rust bindings don't support Python 3.14 out of the box. We resolved this by upgrading to newer pydantic versions with pre-built wheels for 3.14.
  • Gemini API response parsing: The model occasionally wraps JSON in markdown code fences. We built a robust cleaning layer that strips formatting before parsing, with intelligent fallbacks if parsing fails.
  • Emission factors for Africa: Most public datasets use US or EU averages. We researched and calibrated factors specifically for Ghana, particularly electricity (Ghana's grid is significantly cleaner than the US average).
  • Free tier cold starts: Render's free tier sleeps after 15 minutes. We implemented cycling loading messages ("Waking up the server...") so users understand the delay, and UptimeRobot to minimize sleep frequency.

Accomplishments that we're proud of

  • Built and deployed a fully functional, production-grade AI application end to end in under 24 hours
  • Africa-first calibration, EcoSnap is one of very few carbon tools built with West African emission factors
  • Real AI personalization, tips are generated dynamically by Gemini based on each user's actual data, not generic advice
  • Clean, minimal design that feels like a funded product, not a hackathon demo
  • Persistent streak tracking across sessions using Supabase, the app gets more valuable the longer you use it

What we learned

  • Shipping fast requires ruthless prioritization, every feature we cut made the core experience stronger
  • Africa needs its own climate tech, global averages don't serve local realities
  • AI tip generation is most valuable when it's specific, not generic. The difference between "eat less meat" and "your meat meals produced 5kg CO₂ today, swapping one meal to plant-based saves 1.8kg" is enormous
  • Production-readiness is a mindset, not a feature, we made architecture decisions from day one that will let EcoSnap scale without rewrites

What's next for EcoSnap

  • Weekly and monthly trend charts - see your carbon journey over time
  • Community leaderboards - compare your footprint with friends or your city
  • Offline mode - log without internet, sync when connected
  • WhatsApp integration - log your day via chat, for users who don't open apps daily
  • B2B version - help companies track employee commute and office emissions for ESG reporting
  • Expand to more African cities - Lagos, Nairobi, Accra-specific emission factors and tips

Built With

Share this project:

Updates