<?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: Adarsh Raj</title>
    <description>The latest articles on DEV Community by Adarsh Raj (@r67251491).</description>
    <link>https://dev.to/r67251491</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160727%2F477e04c8-9312-46a7-9c69-0c4d065e07eb.png</url>
      <title>DEV Community: Adarsh Raj</title>
      <link>https://dev.to/r67251491</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/r67251491"/>
    <language>en</language>
    <item>
      <title>SketchSloth: Ditch the CSS Boilerplate with Offline Llama 3.2-Vision</title>
      <dc:creator>Adarsh Raj</dc:creator>
      <pubDate>Sun, 25 Oct 2026 15:45:28 +0000</pubDate>
      <link>https://dev.to/r67251491/sketchsloth-ditch-the-css-boilerplate-with-offline-llama-32-vision-j76</link>
      <guid>https://dev.to/r67251491/sketchsloth-ditch-the-css-boilerplate-with-offline-llama-32-vision-j76</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;SketchSloth is an offline, AI-powered desktop application that translates hand-drawn wireframes directly into functional, responsive React and Tailwind TSX code. It acts as a strict Image-to-Code compiler, eliminating the need to manually scaffold frontend layouts. Anyone who sketches UI ideas on paper gets to skip the tedious CSS boilerplate phase and jump straight into logic and refinement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;You can try out the live deployment here:  &lt;a href="https://sketch-sloth.vercel.app/" rel="noopener noreferrer"&gt;https://sketch-sloth.vercel.app/&lt;/a&gt;&lt;/p&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/r67251491-coder" rel="noopener noreferrer"&gt;
        r67251491-coder
      &lt;/a&gt; / &lt;a href="https://github.com/r67251491-coder/SketchSloth" rel="noopener noreferrer"&gt;
        SketchSloth
      &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;🦥 SKETCHSLOTH — NAPKIN-TO-CODE&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Deterministic Image-to-Code Compiler for Hand-Drawn UI Sketches.&lt;/strong&gt;&lt;br&gt;
Built with Next.js 16 (Turbopack), Tailwind CSS, Lucide Icons, React-Live, and Local Vision Models via Ollama.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;br&gt;


&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ Overview&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;SketchSloth&lt;/strong&gt; compiles napkin wireframes and whiteboard diagrams directly into functional, responsive, and compilable Next.js TSX components.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Core Features&lt;/h3&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Brutalist Tactile UI&lt;/strong&gt;: Stark black borders (&lt;code&gt;border-4 border-black&lt;/code&gt;), electric yellow accents (&lt;code&gt;bg-yellow-400&lt;/code&gt;), high-contrast neo-brutalist shadows (&lt;code&gt;shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]&lt;/code&gt;), and mechanical feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Input Wireframe Synthesis&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Single-Screen Item Record&lt;/strong&gt;: Mobile form with tactile file upload, category title, multi-line descriptions, and record submission (&lt;code&gt;LOST AND FOUND ITEMS&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10-Screen Architecture Grid&lt;/strong&gt;: Multi-screen mobile architecture blueprint (&lt;code&gt;HEX CENTRAL // FIELD OPS&lt;/code&gt;) with responsive screen switcher tabs (&lt;code&gt;[01] Log In&lt;/code&gt;, &lt;code&gt;[02] Home&lt;/code&gt;, &lt;code&gt;[03] Search Sites&lt;/code&gt;, &lt;code&gt;[04] Site Details&lt;/code&gt;, &lt;code&gt;[05] Edit Address&lt;/code&gt;, &lt;code&gt;[06] Create Site&lt;/code&gt;, &lt;code&gt;[07] User Menu&lt;/code&gt;, &lt;code&gt;[08] Photos&lt;/code&gt;…&lt;/li&gt;
&lt;/ol&gt;
&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/r67251491-coder/SketchSloth" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
Repository Link: &lt;a href="https://github.com/r67251491-coder/SketchSloth.git" rel="noopener noreferrer"&gt;https://github.com/r67251491-coder/SketchSloth.git&lt;/a&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The application shell is built with Next.js App Router and Tauri v2 for native desktop performance. The core engine connects to a local Ollama endpoint running Meta's open-weight Llama 3.2-Vision model, and the real-time interactive sandbox is powered by react-live and the Tailwind CDN.&lt;/p&gt;

&lt;p&gt;The most significant hurdle was wrestling with the vision model's underlying training. Llama 3.2-Vision aggressively defaulted to object detection, repeatedly hallucinating spatial bounding box coordinates (e.g., [0.0, 0.23, ...]) instead of writing code. To solve this "Pink Elephant" problem, I engineered a highly constrained, positive-instruction OCR prompt architecture, adjusted the temperature to break deterministic failure loops, and built a dynamic grid enforcer to guarantee accurate 1:1 visual synthesis without squishing the output.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open-weight models like Llama 3.2-Vision make offline, private, and zero-cost local AI a reality. Building this with a closed API would introduce latency, require constant internet access, force designers to upload proprietary wireframes to third-party servers, and incur continuous token costs. Open innovation allowed me to build an accessible, highly capable developer tool that runs completely on-device.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;This completely removes the friction of turning physical ideas into digital prototypes. Instead of manually typing out nested &lt;/p&gt; wrappers and translating physical margins to Tailwind classes, the application handles the structural scaffolding instantly. It saves hours of tedious boilerplate work per project. Toodles to manual layout coding!
&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Slow and Steady(week 3 challenge)&lt;/li&gt;
&lt;li&gt;Best Use of GitHub Copilot &lt;/li&gt;
&lt;li&gt;Best Use of Sentry Agent Tracing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>PlantLens Pro: Turning Local AI into a B2B Side Hustle (Directly targets the "Side Hustle" theme)</title>
      <dc:creator>Adarsh Raj</dc:creator>
      <pubDate>Sun, 18 Oct 2026 03:30:26 +0000</pubDate>
      <link>https://dev.to/r67251491/plantlens-pro-turning-local-ai-into-a-b2b-side-hustle-directly-targets-the-side-hustle-theme-4o9a</link>
      <guid>https://dev.to/r67251491/plantlens-pro-turning-local-ai-into-a-b2b-side-hustle-directly-targets-the-side-hustle-theme-4o9a</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;PlantLens Pro is a local-first, offline B2B desktop application designed specifically for independent plant nurseries and boutique garden shops.&lt;/p&gt;

&lt;p&gt;When a customer brings in a sick plant, the shop owner uses their counter webcam to snap a photo within the app. A local open-weight vision model diagnoses the disease and instantly generates a shop-branded, printable "Care Recipe" PDF for the customer.&lt;/p&gt;

&lt;p&gt;The Business Case: Nursery staff waste hours every day answering the exact same question: "Why are my plant's leaves turning yellow?" PlantLens Pro solves this tedious bottleneck. It automates the consultation, provides the customer with a premium takeaway, and includes a built-in upsell section recommending specific fertilizers or soils available in the store. Because it runs locally with zero API costs, it is sold to small shops as a highly attractive $50 lifetime license, rather than a difficult-to-sell monthly SaaS subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://plantlens-ai-pro.vercel.app/" rel="noopener noreferrer"&gt;https://plantlens-ai-pro.vercel.app/&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai-Pro.git" rel="noopener noreferrer"&gt;https://github.com/r67251491-coder/PlantLens-Ai-Pro.git&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The project is built around running open-source vision models completely locally.&lt;/p&gt;

&lt;p&gt;The AI Core: I used LLaVA 1.5 7B (via Ollama) running locally on port 11434. I engineered a strict system prompt instructing the model to act as a botanical diagnostician and output pure JSON containing the plant name, issue, action steps, and an in-store product recommendation.&lt;/p&gt;

&lt;p&gt;The Frontend: Built with Next.js, React, TypeScript, and Tailwind CSS. The UI features a high-contrast, dark-mode professional dashboard designed for efficient counter use, complete with hardware status polling (to ensure Ollama is running) and keyboard shortcuts for fast operation.&lt;/p&gt;

&lt;p&gt;The Desktop Wrapper: I used Tauri v2 to package the Next.js web build into a lightweight, native desktop executable that easily interfaces with the local webcam and printer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Building this with a closed-source, cloud-based API would have completely destroyed the business model for three reasons:&lt;/p&gt;

&lt;p&gt;The "Greenhouse Wi-Fi" Problem: Garden centers, rural nurseries, and metal-framed greenhouses notoriously have terrible or non-existent internet connections. Cloud APIs time out. By running LLaVA locally via Ollama, PlantLens Pro works flawlessly completely offline.&lt;/p&gt;

&lt;p&gt;Zero Marginal Cost Pricing: Small retail shops operate on razor-thin margins and hate recurring $30/month software subscriptions. Because my AI inference cost is literally $0, I can sell this as a flat one-time fee. It becomes an immediate, no-brainer impulse buy for a stressed shop owner.&lt;/p&gt;

&lt;p&gt;Local Privacy: Boutique shops don't want to upload their proprietary inventory issues, supplier tags, or customer interactions to a corporate server. Everything stays on their own hard drive.&lt;/p&gt;

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

&lt;p&gt;Best Local Inference Build&lt;br&gt;
Best Business Utility&lt;/p&gt;

&lt;p&gt;Thanks &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Building PlantLens AI for the Hacktoberfest "Touch Grass" Challenge</title>
      <dc:creator>Adarsh Raj</dc:creator>
      <pubDate>Sat, 10 Oct 2026 02:05:34 +0000</pubDate>
      <link>https://dev.to/r67251491/building-plantlens-ai-for-the-hacktoberfest-touch-grass-challenge-5b6b</link>
      <guid>https://dev.to/r67251491/building-plantlens-ai-for-the-hacktoberfest-touch-grass-challenge-5b6b</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;PlantLens AI&lt;/strong&gt;, a privacy-focused, AI-powered botanical assistant. Users simply upload a photo of a plant or leaf, and the application provides an instant health assessment, identifies possible diseases or pests, and outlines practical care instructions (watering, sunlight, and origin data). &lt;/p&gt;

&lt;p&gt;To meet the "Touch Grass" philosophy, the app is intentionally designed to make the screen the shortest part of the experience. Instead of keeping users trapped in an endless chatbot UI, the AI generates a single, specific &lt;strong&gt;outdoor action task&lt;/strong&gt; (e.g., "Check the top two inches of soil for moisture" or "Inspect the underside of leaves for aphids"). Users are prompted to physically go outside, perform the task, and click a "✓ I Did It" button to celebrate spending time in the real world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;plantlensai.vercel.app&lt;/p&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/r67251491-coder" rel="noopener noreferrer"&gt;
        r67251491-coder
      &lt;/a&gt; / &lt;a href="https://github.com/r67251491-coder/PlantLens-Ai" rel="noopener noreferrer"&gt;
        PlantLens-Ai
      &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;PlantLens AI 🌿&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Simple, AI-powered plant health assistant powered by Gemma open-weight vision models.&lt;/strong&gt;&lt;br&gt;
Spot leaf diseases early, get actionable organic care steps, and spend less time on screens caring for real plants.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://nextjs.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4b28aec8bd1bafd8e51b9aff9c4724f6c9c03608c895b6523934380fcc782ca0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352d626c61636b3f7374796c653d666c6174266c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
&lt;a href="https://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8d5257c66a21d6518118e39cfe892ed3e407179e04193093ec232d0f733701bf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d626c75653f7374796c653d666c6174266c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://tailwindcss.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5cba7855602e89408338109365e355b44dc81891347f91d95b5631f817d74afe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e645f4353532d332e342d3338626466383f7374796c653d666c6174266c6f676f3d7461696c77696e642d637373" alt="Tailwind CSS"&gt;&lt;/a&gt;
&lt;a href="https://ai.google.dev/gemma" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/25405b8a7940e1aa54a457bebe4ab064a0497206ff06cb90a81740c243ef5e53/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6f64656c2d47656d6d612d2d332d2d3237422d2d49542d3030383038303f7374796c653d666c6174266c6f676f3d676f6f676c65" alt="Gemma"&gt;&lt;/a&gt;
&lt;a href="https://hacktoberfest.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e8e34fe2a4aa667bb22b335f9ddcaffdc3b1c50c9933ce40683ad903e3de8d64/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d546f7563685f47726173732d677265656e3f7374796c653d666c6174" alt="Hacktoberfest"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-problem" rel="noopener noreferrer"&gt;Problem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-solution" rel="noopener noreferrer"&gt;Solution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-why-gemma" rel="noopener noreferrer"&gt;Why Gemma?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-why-open-weight-ai" rel="noopener noreferrer"&gt;Why Open-Weight AI?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-touch-grass-philosophy" rel="noopener noreferrer"&gt;🪴 Touch Grass Philosophy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-architecture" rel="noopener noreferrer"&gt;📐 Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-security--privacy" rel="noopener noreferrer"&gt;🔒 Security &amp;amp; Privacy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#%EF%B8%8F-setup--installation" rel="noopener noreferrer"&gt;⚙️ Setup &amp;amp; Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-testing--verification" rel="noopener noreferrer"&gt;🧪 Testing &amp;amp; Verification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-future-improvements" rel="noopener noreferrer"&gt;🚀 Future Improvements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🥀 Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Home gardeners, urban plant parents, and allotment growers often notice unhealthy foliage—wilting stems, powdery mildew, yellow chlorosis, or necrotic spots—but do not know:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What the symptoms indicate.&lt;/li&gt;
&lt;li&gt;Whether the issue is fungal, pest-driven, or environmental.&lt;/li&gt;
&lt;li&gt;What concrete outdoor action to take next to save the plant.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Most existing garden apps lock users behind paywalls, aggressive paywalls, or endless screen interactions that disconnect them from their garden.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🪴 Solution&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;PlantLens AI&lt;/strong&gt; provides instant botanical triage:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A user uploads a photo of a plant or…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/r67251491-coder/PlantLens-Ai" 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;I built the application using &lt;strong&gt;Next.js, TypeScript, and Tailwind CSS&lt;/strong&gt; for a clean, nature-inspired UI (utilizing Quicksand and Nunito fonts for an organic feel). &lt;/p&gt;

&lt;p&gt;The core intelligence is powered by Google's open-weight &lt;strong&gt;Gemma Multimodal Vision&lt;/strong&gt; model. I used the &lt;strong&gt;Google Antigravity IDE&lt;/strong&gt; to orchestrate the prompt engineering and MVP generation. The application sends the uploaded image and a strict system prompt to Gemma via a server-side API proxy to keep credentials secure. Gemma is instructed to act as a botanical assessor and return a highly structured JSON object containing confidence levels, visible symptoms, and the personalized "Touch Grass" task, which Next.js then beautifully renders on the frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is critical for an application like PlantLens AI. Using an open-weight model like Gemma provided several massive advantages over a closed API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developer Control &amp;amp; Transparency:&lt;/strong&gt; I could see exactly how the model behaved and enforce a strict JSON schema without unpredictable black-box changes breaking my application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by Design:&lt;/strong&gt; Because it's open-weight, the foundation is laid for future local-edge inference (running directly on a user's device or home server), ensuring users don't have to send photos of their private homes or gardens to a centralized corporate server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization:&lt;/strong&gt; Open weights allow for future fine-tuning on highly specific regional agricultural datasets or localized pests, which closed models rarely support affordably.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Week 1: Touch Grass&lt;/li&gt;
&lt;li&gt;Open-Source AI Innovator&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Building PlantLens AI for the Hacktoberfest "Touch Grass" Challenge</title>
      <dc:creator>Adarsh Raj</dc:creator>
      <pubDate>Sat, 10 Oct 2026 02:00:26 +0000</pubDate>
      <link>https://dev.to/r67251491/building-plantlens-ai-for-the-hacktoberfest-touch-grass-challenge-57bh</link>
      <guid>https://dev.to/r67251491/building-plantlens-ai-for-the-hacktoberfest-touch-grass-challenge-57bh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;PlantLens AI&lt;/strong&gt;, a privacy-focused, AI-powered botanical assistant. Users simply upload a photo of a plant or leaf, and the application provides an instant health assessment, identifies possible diseases or pests, and outlines practical care instructions (watering, sunlight, and origin data).&lt;/p&gt;

&lt;p&gt;To meet the "Touch Grass" philosophy, the app is intentionally designed to make the screen the shortest part of the experience. Instead of keeping users trapped in an endless chatbot UI, the AI generates a single, specific &lt;strong&gt;outdoor action task&lt;/strong&gt; (e.g., "Check the top two inches of soil for moisture" or "Inspect the underside of leaves for aphids"). Users are prompted to physically go outside, perform the task, and click a "✓ I Did It" button to celebrate spending time in the real world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;[ plantlensai.vercel.app ]&lt;/p&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/r67251491-coder" rel="noopener noreferrer"&gt;
        r67251491-coder
      &lt;/a&gt; / &lt;a href="https://github.com/r67251491-coder/PlantLens-Ai" rel="noopener noreferrer"&gt;
        PlantLens-Ai
      &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;PlantLens AI 🌿&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Simple, AI-powered plant health assistant powered by Gemma open-weight vision models.&lt;/strong&gt;&lt;br&gt;
Spot leaf diseases early, get actionable organic care steps, and spend less time on screens caring for real plants.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://nextjs.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4b28aec8bd1bafd8e51b9aff9c4724f6c9c03608c895b6523934380fcc782ca0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352d626c61636b3f7374796c653d666c6174266c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
&lt;a href="https://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8d5257c66a21d6518118e39cfe892ed3e407179e04193093ec232d0f733701bf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d626c75653f7374796c653d666c6174266c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://tailwindcss.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5cba7855602e89408338109365e355b44dc81891347f91d95b5631f817d74afe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e645f4353532d332e342d3338626466383f7374796c653d666c6174266c6f676f3d7461696c77696e642d637373" alt="Tailwind CSS"&gt;&lt;/a&gt;
&lt;a href="https://ai.google.dev/gemma" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/25405b8a7940e1aa54a457bebe4ab064a0497206ff06cb90a81740c243ef5e53/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6f64656c2d47656d6d612d2d332d2d3237422d2d49542d3030383038303f7374796c653d666c6174266c6f676f3d676f6f676c65" alt="Gemma"&gt;&lt;/a&gt;
&lt;a href="https://hacktoberfest.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e8e34fe2a4aa667bb22b335f9ddcaffdc3b1c50c9933ce40683ad903e3de8d64/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d546f7563685f47726173732d677265656e3f7374796c653d666c6174" alt="Hacktoberfest"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-problem" rel="noopener noreferrer"&gt;Problem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-solution" rel="noopener noreferrer"&gt;Solution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-why-gemma" rel="noopener noreferrer"&gt;Why Gemma?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-why-open-weight-ai" rel="noopener noreferrer"&gt;Why Open-Weight AI?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-touch-grass-philosophy" rel="noopener noreferrer"&gt;🪴 Touch Grass Philosophy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-architecture" rel="noopener noreferrer"&gt;📐 Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-security--privacy" rel="noopener noreferrer"&gt;🔒 Security &amp;amp; Privacy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#%EF%B8%8F-setup--installation" rel="noopener noreferrer"&gt;⚙️ Setup &amp;amp; Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-testing--verification" rel="noopener noreferrer"&gt;🧪 Testing &amp;amp; Verification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/r67251491-coder/PlantLens-Ai#-future-improvements" rel="noopener noreferrer"&gt;🚀 Future Improvements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🥀 Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Home gardeners, urban plant parents, and allotment growers often notice unhealthy foliage—wilting stems, powdery mildew, yellow chlorosis, or necrotic spots—but do not know:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What the symptoms indicate.&lt;/li&gt;
&lt;li&gt;Whether the issue is fungal, pest-driven, or environmental.&lt;/li&gt;
&lt;li&gt;What concrete outdoor action to take next to save the plant.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Most existing garden apps lock users behind paywalls, aggressive paywalls, or endless screen interactions that disconnect them from their garden.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🪴 Solution&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;PlantLens AI&lt;/strong&gt; provides instant botanical triage:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A user uploads a photo of a plant or…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/r67251491-coder/PlantLens-Ai" 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;I built the application using &lt;strong&gt;Next.js, TypeScript, and Tailwind CSS&lt;/strong&gt; for a clean, nature-inspired UI (utilizing Quicksand and Nunito fonts for an organic feel). &lt;/p&gt;

&lt;p&gt;The core intelligence is powered by Google's open-weight &lt;strong&gt;Gemma Multimodal Vision&lt;/strong&gt; model. I used the &lt;strong&gt;Google Antigravity IDE&lt;/strong&gt; to orchestrate the prompt engineering and MVP generation. The application sends the uploaded image and a strict system prompt to Gemma via a server-side API proxy to keep credentials secure. Gemma is instructed to act as a botanical assessor and return a highly structured JSON object containing confidence levels, visible symptoms, and the personalized "Touch Grass" task, which Next.js then beautifully renders on the frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is critical for an application like PlantLens AI. Using an open-weight model like Gemma provided several massive advantages over a closed API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developer Control &amp;amp; Transparency:&lt;/strong&gt; I could see exactly how the model behaved and enforce a strict JSON schema without unpredictable black-box changes breaking my application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by Design:&lt;/strong&gt; Because it's open-weight, the foundation is laid for future local-edge inference (running directly on a user's device or home server), ensuring users don't have to send photos of their private homes or gardens to a centralized corporate server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization:&lt;/strong&gt; Open weights allow for future fine-tuning on highly specific regional agricultural datasets or localized pests, which closed models rarely support affordably.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Week 1: Touch Grass&lt;/li&gt;
&lt;li&gt;Open-Source AI Innovator&lt;/li&gt;
&lt;/ul&gt;

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