Skip to content
Navyashree N
← All work

Full-stack · Climate2025

A climate app that recommends native plants by retrieval over a vector index rather than by lookup table — so the advice tracks your actual coordinates and weather.

Built for World Environment Day

Image slot

EcoEcho — native plant recommendations from live local conditions

1600×1000 · app screenshot, ideally the recommendation view

Role

Solo build — schema, RAG pipeline, auth, front end

Year

2025

Stack

  • Next.js 15
  • Supabase
  • pgvector
  • Clerk
  • HuggingFace
  • Open-Meteo

The problem

Plant recommendation tools are almost always a hardcoded table keyed on a region name. That breaks the moment your conditions do not match the label on your region — the same district can hold a dozen microclimates, and a table has no way to say so. I wanted recommendations that reasoned from conditions rather than from a category.

Approach

  1. Embedded a native-species corpus with HuggingFace sentence embeddings and stored the vectors in Supabase using pgvector, so retrieval is a similarity query rather than a join on a region column.

  2. Pulled live conditions from Open-Meteo against the user's coordinates and folded them into the retrieval context, so the same location returns different guidance in different seasons.

  3. Put Clerk in front for auth and per-user history, and built the whole thing on the Next.js App Router with server components doing the data work.

Results

similarity search, not a lookup table

pgvector

similarity search, not a lookup table

weather folded into every query

live

weather folded into every query

Image slot

EcoEcho recommendation results view

1600×1000

Image slot

EcoEcho retrieval pipeline diagram

1600×1000

What it came to

The interesting part was discovering how much of a 'RAG app' is actually corpus work. The retrieval quality tracked how carefully the species descriptions were written far more than it tracked the embedding model or the top-k.