<?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: Saifuddin Malek</title>
    <description>The latest articles on DEV Community by Saifuddin Malek (@saifuddin_malek_af6c6895a).</description>
    <link>https://dev.to/saifuddin_malek_af6c6895a</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%2F3544178%2F192f4976-2ca7-418a-af4f-aca36fe99696.png</url>
      <title>DEV Community: Saifuddin Malek</title>
      <link>https://dev.to/saifuddin_malek_af6c6895a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saifuddin_malek_af6c6895a"/>
    <language>en</language>
    <item>
      <title>GardenFix: Local AI Plant Care That Gets You Off the Screen</title>
      <dc:creator>Saifuddin Malek</dc:creator>
      <pubDate>Sat, 10 Oct 2026 01:45:57 +0000</pubDate>
      <link>https://dev.to/saifuddin_malek_af6c6895a/gardenfix-local-ai-plant-care-that-gets-you-off-the-screen-516k</link>
      <guid>https://dev.to/saifuddin_malek_af6c6895a/gardenfix-local-ai-plant-care-that-gets-you-off-the-screen-516k</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;&lt;strong&gt;GardenFix&lt;/strong&gt; is a local AI plant-care assistant built around a simple idea: take a photo, get one useful check, and return to your plant.&lt;/p&gt;

&lt;p&gt;It is for beginners who notice drooping or discoloured leaves but don’t know what to investigate next.&lt;/p&gt;

&lt;p&gt;Users upload a plant photo and answer two questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When did you last water it?&lt;/li&gt;
&lt;li&gt;How much sunlight does it receive?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GardenFix then provides visible observations, possible explanations, and one practical physical check. It also explains what cannot be determined from the photo.&lt;/p&gt;

&lt;p&gt;The screen is the starting point. The useful part happens afterward, when someone inspects the soil, drainage, or surrounding conditions themselves. Suggestions are not confirmed diagnoses.&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/GOQoW_FbaoY" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72enn5d9jp2kmj978ayh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72enn5d9jp2kmj978ayh.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjczxzxnop4ovei0k640u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjczxzxnop4ovei0k640u.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72l9on9zkvlxoxkeup9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72l9on9zkvlxoxkeup9u.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GardenFix runs locally. You can try it using the setup instructions in the repository below.&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/SaifuddinM23" rel="noopener noreferrer"&gt;
        SaifuddinM23
      &lt;/a&gt; / &lt;a href="https://github.com/SaifuddinM23/gardenfix" rel="noopener noreferrer"&gt;
        gardenfix
      &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;🌱 GardenFix&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;A local AI plant-care assistant built for the &lt;strong&gt;Touch Grass&lt;/strong&gt; open-source AI challenge.&lt;br&gt;
Everything runs on your own machine — no paid APIs, no cloud dependencies, no authentication. Designed for local processing; works offline after dependencies and model files are downloaded.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Upload a photo of your plant, tell GardenFix when you last watered it and how much sunlight it gets, and receive:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Plant Condition&lt;/strong&gt; – assessment of overall visual health (Healthy &amp;amp; Thriving, Mild Stress, Severe Distress / Dying)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visible Observations&lt;/strong&gt; – AI observations that may contain errors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Possible Explanations&lt;/strong&gt; – tentative causes tailored to your watering history and sunlight&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One Practical Outdoor Check&lt;/strong&gt; – a physical check with conditional follow-up actions based on what you find&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limitations Notice&lt;/strong&gt; – clear transparency about what cannot be determined from a photo alone&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Tech Stack&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React 18 + Vite 5 (system fonts, Vanilla CSS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Node.js +&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SaifuddinM23/gardenfix" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://github.com/SaifuddinM23/gardenfix" rel="noopener noreferrer"&gt;Source code and setup instructions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application code is MIT-licensed. Gemma’s model weights are governed separately by its model terms.&lt;/p&gt;

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

&lt;p&gt;The frontend uses &lt;strong&gt;React, Vite, and plain CSS&lt;/strong&gt;. The backend uses &lt;strong&gt;Node.js and Express&lt;/strong&gt;, with Multer for in-memory uploads and Sharp for image processing.&lt;/p&gt;

&lt;p&gt;At its core is &lt;strong&gt;Gemma 3 4B&lt;/strong&gt;, an open-weight vision-language model running locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The backend validates and resizes the uploaded image, then sends it to Gemma alongside the user’s watering and sunlight answers. It requests structured output and validates that response before displaying it.&lt;/p&gt;

&lt;p&gt;Gemma performs the image analysis and connects visible features with the supplied care context. The application handles missing model files, unavailable Ollama, and inference errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned From Testing
&lt;/h3&gt;

&lt;p&gt;I tested images showing green foliage and another plant with brown leaves and pronounced drooping. The responses reflected those differences, but they also revealed mistakes.&lt;/p&gt;

&lt;p&gt;For example, one response described leaves as detached when the photo did not clearly establish that. Some explanations were also more confident than the evidence justified.&lt;/p&gt;

&lt;p&gt;This reinforced an important design decision: observations, possible explanations, and limitations should appear separately. A fluent AI answer still needs human checking. Broader testing and more careful recommendations remain areas for improvement.&lt;/p&gt;

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

&lt;p&gt;GardenFix’s local approach gives me control over where inference happens and how the model is used.&lt;/p&gt;

&lt;p&gt;After downloading the dependencies and model files, the app is designed to run without a cloud AI service. In the default local configuration, plant photos and care information are processed on my machine.&lt;/p&gt;

&lt;p&gt;There are no per-request AI API charges, although inference still uses local computing resources.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also lets me experiment with prompts, adjust the output structure, and explore other compatible models. When testing reveals misleading responses, I can inspect and change the application’s inference instructions.&lt;/p&gt;

&lt;p&gt;A closed cloud API could analyse plant images too. The benefit here is being able to build around local processing and offline availability after setup, without depending on a remote AI provider.&lt;/p&gt;

&lt;p&gt;For GardenFix, open innovation makes the AI a component I can run and adapt myself.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GardenFix uses &lt;code&gt;gemma3:4b&lt;/code&gt; through Ollama as its core image-analysis model. It processes plant photos alongside watering and sunlight context to generate observations, possible explanations, and a practical next check.&lt;/p&gt;

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