Back to projects

Live app

Plant ID App

AI-powered plant identification and care guidance from an uploaded photo.

AI identification01
Care card02
Printable PDF03

Why I built it

I wanted an AI-assisted tool that connects software to an everyday physical-world task: figuring out what a plant is and how to care for it.

What it does

  • Accepts an uploaded plant photo.
  • Uses AI vision to identify the plant and shape the result into care guidance.
  • Surfaces practical notes such as watering, suitability, safety, and next care steps.

Tech stack

ReactViteTailwindVercelOpenAI Vision / API

Build / Deployment

App type
Standalone web app
Code location
Separate project repo
Front end
Vite, React, Tailwind
Back end / API
Vercel serverless API route
Engine
OpenAI vision API
Deployment
Vercel
Public URL
https://plants.gavinnesom.com
Notes
Separate from the portfolio site; the public demo includes server-side rate limiting before the OpenAI vision call to reduce the risk of runaway API usage.

Architecture / How it works

  • The plant app lives outside this portfolio as a standalone Vite and React application.
  • The front end handles upload and report display, while a Vercel serverless API route talks to the OpenAI vision API.
  • Uploads are validated by file type and size before processing, and the OpenAI API key is never exposed to the browser.
  • The portfolio only describes the project and links out to the public app.

What I built

  • A photo-upload flow for plant identification.
  • A clean care report surface for identification, watering, suitability, and safety notes.
  • A standalone app intended to live at plants.gavinnesom.com.

What I learned

  • How to shape AI vision output into a gardener-friendly report.
  • Where confidence, caveats, and practical care instructions need to be explicit.
  • How much polish matters when an AI result is meant to be used outside the screen.

Current status

The Plant ID App has a public standalone deployment at plants.gavinnesom.com.

Next steps

  • Improve the care-report formatting.
  • Add stronger uncertainty and safety language where identification confidence is limited.
  • Capture real screenshots for the portfolio card and detail page.