<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hamza Atiq</title>
    <description>The latest articles on DEV Community by Hamza Atiq (@hamza_atiq_25a2581701fdab).</description>
    <link>https://dev.to/hamza_atiq_25a2581701fdab</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3370047%2F32e48670-00d5-4423-b4ca-db876a4ac751.jpg</url>
      <title>DEV Community: Hamza Atiq</title>
      <link>https://dev.to/hamza_atiq_25a2581701fdab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hamza_atiq_25a2581701fdab"/>
    <language>en</language>
    <item>
      <title>Ecolens</title>
      <dc:creator>Hamza Atiq</dc:creator>
      <pubDate>Mon, 20 Apr 2026 05:25:25 +0000</pubDate>
      <link>https://dev.to/hamza_atiq_25a2581701fdab/ecolens-33c9</link>
      <guid>https://dev.to/hamza_atiq_25a2581701fdab/ecolens-33c9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-04-16"&gt;Weekend Challenge: Earth Day Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;EcoLens is an AI-powered eco-companion that lets you scan any everyday object and instantly learn its environmental impact. Upload or photograph anything, a plastic bottle, a piece of clothing, a coffee cup, then Gemini 2.5 Flash Vision returns a structured eco-report with carbon footprint, planet score (0–100), recyclability breakdown, and three greener swap suggestions.&lt;br&gt;
What makes it more than a one-off tool: Backboard persistent memory remembers your entire scan history. On your second scan, a personalised panel appears referencing what you've scanned before. The summary page pulls your Backboard memories to generate a weekly eco-journey narrative with a planet-score trend chart.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://ecolens-one.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;ecolens-one.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Hamza-Atiq" rel="noopener noreferrer"&gt;
        Hamza-Atiq
      &lt;/a&gt; / &lt;a href="https://github.com/Hamza-Atiq/ecolens" rel="noopener noreferrer"&gt;
        ecolens
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌍 EcoLens — AI Eco-Companion&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Scan any object. Discover its environmental impact. Build greener habits over time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Point your camera at any everyday object — a plastic bottle, a piece of clothing, a coffee cup — and Gemini 2.5 Flash Vision instantly returns a full eco-report. Backboard's persistent memory means EcoLens remembers your scan history and gives you increasingly personalised sustainability advice over time.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instant eco-report&lt;/strong&gt; — carbon footprint (kg CO₂), planet score (0–100), recyclability breakdown, 3 greener swap suggestions, and a fun environmental fact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistent memory&lt;/strong&gt; — Backboard remembers every object you've ever scanned; on your second visit the app greets you with personalised advice referencing your history&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weekly eco-journey&lt;/strong&gt; — &lt;code&gt;/summary&lt;/code&gt; page pulls your Backboard memories to generate an AI narrative of your sustainability progress, complete with a planet-score bar chart and trend badge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-first&lt;/strong&gt; — drag-drop or take a live photo directly from your phone…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Hamza-Atiq/ecolens" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Next.js 14 (App Router) · Tailwind CSS · Backboard SDK · Vercel&lt;br&gt;
&lt;strong&gt;Two distinct Gemini 2.5 Flash calls per scan:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vision analysis → structured JSON eco-report (carbon_kg, planet_score, recyclable/not_recyclable arrays, eco_swaps, fun_fact)&lt;/li&gt;
&lt;li&gt;Memory-aware personalised advice → references the user's full scan history via Backboard's Auto memory mode
&lt;strong&gt;Backboard integration:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;One persistent assistant ("EcoLens Assistant") per app, looked up by name on init&lt;/li&gt;
&lt;li&gt;One thread per user, keyed by browser UUID in localStorage&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;memory: "Auto"&lt;/code&gt; on every addMessage call, Backboard automatically extracts and stores facts from each eco-report&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;summary&lt;/code&gt; page calls &lt;code&gt;getMemories()&lt;/code&gt; to surface raw memories alongside an AI-generated weekly narrative
Images are base64-encoded client-side, written to a temp file server-side, and passed to Backboard's &lt;code&gt;addMessage&lt;/code&gt; via the &lt;code&gt;files&lt;/code&gt; parameter. Backboard routes them to Gemini via BYOK.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Google Gemini — two Gemini 2.5 Flash calls per scan (vision analysis + memory-aware personalisation), structured JSON output contract, BYOK via Backboard&lt;/li&gt;
&lt;li&gt;Best Use of Backboard — persistent assistant memory across sessions, Auto memory mode, getMemories for weekly summary, thread persistence in localStorage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hamza Atiq(Me)&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
  </channel>
</rss>
