Inspiration
Sustainable shopping shouldn’t require hours of research. Yet online stores are filled with vague claims like “eco-friendly” or “green” that lack evidence, forcing consumers to either trust marketing—or give up.
The real problem isn’t awareness, it’s verification at the moment of decision.
EcoLens was inspired by this gap. People want to shop responsibly, but they lack clear, trustworthy signals while browsing products. EcoLens brings sustainability analysis directly into the shopping experience, where decisions actually happen.
What I Learned
Building EcoLens taught me several important lessons:
Explainability builds trust Users don’t want just a score — they want to know why a product scores well or poorly.
Sustainability is multi-dimensional Environmental impact involves tradeoffs between carbon emissions, water usage, materials, toxicity, and product lifespan.
Responsible AI should be optional AI can enhance analysis, but should never be a black box or a dependency.
Good architecture enables iteration Separating extraction, analysis, scoring, and UI made the project easier to extend and debug.
How I Built It
EcoLens is a Chrome Extension built using Manifest V3, with a modular, production-oriented architecture:
Content scripts extract structured product data (title, brand, claims, materials, price, images) from supported e-commerce sites.
A background service worker analyzes products using:
A weighted sustainability scoring model
Certification and material signal detection
Greenwashing pattern analysis
Optional AI-assisted enrichment (Gemini), fully opt-in
The popup UI displays:
An overall sustainability score (0–100)
An explainable breakdown across environmental factors
Eco-friendly alternatives with impact comparisons
A personal impact dashboard tracking estimated savings
An options page lets users customize sustainability weights and analysis behavior.
Sustainability Scoring Model
Each product is evaluated across (n) sustainability dimensions. Each dimension produces a normalized score:
( s_i \in [0, 100] )
User-defined weights are normalized so that:
The final sustainability score is computed as: $$ \text{Sustainability Score} = \sum_{i=1}^{n} w_i \cdot s_i $$ This formulation ensures the score is transparent, explainable, and customizable. --- ## Confidence Estimation EcoLens also estimates a confidence level based on data coverage. The coverage ratio is defined as: $$ r = \frac{\text{Available Metrics}}{\text{Total Metrics}} $$ Confidence levels are assigned as: $$ \text{Confidence} = \begin{cases} \text{Low}, & r < 0.4 \\ \text{Medium}, & 0.4 \le r < 0.7 \\ \text{High}, & r \ge 0.7 \end{cases} $$ This makes uncertainty explicit rather than hidden, increasing user trust. --- ## Challenges I Faced - Fragmented sustainability data Product-level environmental data is inconsistent and often unavailable, requiring careful fallback logic. - Detecting greenwashing without over-flagging Claims had to be evaluated against evidence rather than keywords alone. - Chrome Manifest V3 constraints Service worker lifecycles and permission limits required careful state management and messaging design. - Balancing depth with usability The biggest challenge was presenting complex sustainability data without overwhelming users during quick purchase decisions. --- ## Conclusion EcoLens is designed as an anti-greenwashing decision engine, not just a scoring tool. It transforms sustainability from a vague marketing promise into an explainable, comparable, and actionable signal—exactly when it matters most. This project reflects my focus on trust, transparency, and real-world usability, and my approach to building responsible, user-centric technology.
Built With
- analysis-engine
- and-messaging-google-gemini-api-(optional)-?-ai-assisted-sustainability-analysis-and-reasoning-(opt-in)-chrome-storage-(sync-&-local)-?-user-settings
- and-per-tab-analysis-caching-node.js-?-development-scripts-(icon-generation
- and-responsive-extension-ui-chrome-extensions-api-(manifest-v3)-?-content-scripts
- and-ui-behavior-html5-&-css3-?-popup
- background-service-worker
- built-with-javascript-(es-modules)-?-core-logic
- ebay
- impact-tracking
- mv3)-amazon
- options-page
- packaging)-latex-(devpost-math-mode)-?-formal-definition-of-sustainability-scoring-and-confidence-models-markdown-?-project-documentation-and-submission-formatting-platforms-&-sites-supported-google-chrome-(developer-mode
- storage
- walmart-open
- weights
Log in or sign up for Devpost to join the conversation.