DEV Community

Gourav
Gourav

Posted on

TouchGrass : Building an Offline Plant Doctor with React, FastAPI, & Open-Weight AI

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

The "Touch Grass" Moment
Lately, my days have been an endless loop of staring at screens—juggling React/FastAPI projects, grinding LeetCode, and preparing for the GATE CS exams. My only real break is stepping out onto the balcony to check on my plants, mainly my Tulsi and Money plant.

A few days ago, I noticed the leaves on my Tulsi were turning slightly yellow, and the Money plant looked a bit droopy. I wanted to use a vision AI to diagnose them, but it hit me: why should I send photos of my home balcony to a massive corporate cloud server just to figure out if my plant needs water or magnesium? Plus, my Wi-Fi is notoriously spotty out there.

That’s when I realized the perfect fit for the Touch Grass challenge: an entirely offline, open-weight plant health assistant. A tool that forces you to step away from the IDE, walk into your garden, and interact with nature, all while keeping your data strictly local.

What I Built

I built FloraLense (or whatever you want to name it), a local-first web application that diagnoses plant health using open-source AI.

Demo

demo image

Code

https://github.com/bluea1855/FloraLense

How I Built It

Here is the stack I used:
Frontend: React.js and Tailwind CSS, built as a Progressive Web App (PWA) so I can use it like a native app on my phone while out on the balcony.

Backend: FastAPI (Python) serving as a lightweight API layer.

The AI Core: I integrated Google's Gemma (specifically a lightweight open-weight vision model) running entirely locally via my backend.

Why Does Open Innovation Matter?

This project wouldn't make sense if it wasn't open-source and running locally.

Absolute Privacy: Gardening is a personal, at-home activity. By using open-weight models, image inference happens directly on my own machine. Zero images are sent to third-party APIs.

No Dead Zones: You don't need a 5G connection in the middle of a park or a backyard to figure out what's wrong with a leaf.

Tinker-Friendly: Because the weights are open, I can eventually fine-tune the model specifically on Indian household plants (like Tulsi, Neem, or Curry leaves) which general cloud models sometimes misidentify.

Prize Categories

Best Use of Gemma: For utilizing the open-weight model to perform local, offline vision inference.
Best Use of Render: For Deploying backend on render

Top comments (0)