DEV Community

hrishu802
hrishu802

Posted on

I Built Sproutly for My Mom, Who Loves Gardening 🌱

My mom loves gardening. She spends time taking care of her plants, but keeping a garden healthy means dealing with many questions:

  • Why are the leaves turning yellow?
  • What should I look for when checking for pests?
  • How often should I water a particular plant?
  • What care does a plant need as the seasons change?

I wanted to build something that makes finding answers easier and lets her spend more time caring for her garden.

So I built Sproutly — Your AI Gardening Companion.

The idea is simple: use AI to make gardening guidance more accessible, practical, and personal.

🌿 What I Built

Sproutly is a gardening companion designed to bring several plant-care activities together in one place.

The application includes a collection of gardening features, including:

  • Garden Coach: Ask questions about watering, pruning, pest control, and seasonal plant care.
  • My Garden: Keep your garden and connected plants organised.
  • Plant Doctor: A dedicated place for plant-health questions and diagnosis workflows.
  • Missions: Turn gardening into manageable activities.
  • Journal: Keep track of your gardening journey.
  • Regional context: The interface is configured for North India (Subtropical), making regional context part of the experience.

Rather than building another generic chatbot, I wanted Sproutly to feel like a companion for someone who already enjoys gardening and wants help making better decisions.

🚀 Live Demo

Try Sproutly:

Open Sproutly

The frontend is deployed on Vercel, and the backend is hosted on Render.

Note: The live application is deployed, but AI-generated responses are temporarily unavailable because the current inference provider has exhausted its credits. The AI integration is implemented, and I am exploring sustainable alternatives for hosting inference.

💻 Source Code

The project is open source:

View Sproutly on GitHub

I built the application using:

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Express
  • Hugging Face Inference Providers
  • An open-weight Meta Llama model

The frontend and backend are deployed separately, allowing the application interface and AI services to evolve independently.

🛠️ How I Built It

I wanted to build more than a simple question-and-answer interface. The goal was to create an application with dedicated gardening workflows.

The architecture follows a straightforward flow:

User
  ↓
React + TypeScript Frontend
  ↓
Express Backend on Render
  ↓
AI Inference Provider
  ↓
Gardening Guidance
Enter fullscreen mode Exit fullscreen mode

The frontend handles the user experience, while the backend manages API requests and communication with the AI inference service.

Keeping AI requests on the server also means the inference API key does not need to be exposed in the browser.

One of the practical lessons from deployment was that getting an AI application working locally is only part of the job. Production routing, CORS configuration, environment variables, provider limits, and error handling all matter.

During deployment, I had to troubleshoot a CORS preflight failure between Vercel and Render. After correcting the production configuration, requests reached the AI endpoint successfully. I then discovered that the inference provider had run out of credits.

That was a useful reminder: a successful deployment does not automatically mean every external service is available.

🌍 Why Open Innovation Matters

For Sproutly, open-weight AI offers the flexibility to experiment with different models and inference providers instead of tying the entire application to a single model service.

That flexibility matters for a personal project because hosting costs and usage limits can affect whether an application remains usable over time.

It also creates room to explore different approaches in the future, including alternative hosted providers and potentially local inference.

My goal is not to use AI simply because it is available. I want it to make gardening guidance more useful and accessible.

🌱 Building for Someone Real

The most important part of this project is the person who inspired it.

Building for my mom gave me a concrete user to think about. Instead of starting with a long list of AI features, I could start with a real interest and ask what might make that experience easier.

Gardening is something people do away from their screens. Ideally, an app like Sproutly should help someone find the information they need and then get back outside to care for their plants.

That is the experience I want to keep working toward.

📚 What I Learned

This project taught me a few important lessons:

  • Build around a real need. A personal motivation gives the project a clearer purpose.
  • Deployment is part of development. Frontend and backend integrations need to be tested in production, not just locally.
  • AI reliability matters. Choosing a model is only one part of building a dependable AI-powered application.
  • Design for the person using it. Gardening knowledge should be easy to access without making the user navigate an unnecessarily complicated interface.

🔮 What's Next?

I want to continue improving Sproutly with a focus on:

  • More reliable AI inference
  • Better plant-health guidance
  • More useful seasonal recommendations for regional gardens
  • Improved garden tracking and progress history
  • A smoother experience for everyday gardening tasks

The long-term goal is simple:

Spend less time wondering what your plants need, and more time helping them grow. 🌱

🔗 Links

Sproutly started with a simple idea: build something useful for someone I care about. I am excited to keep improving it and see how far the idea can grow.

Top comments (0)