Skip to content
Portfolio — 2026Bulawayo, Zimbabwe

Knowledge Mhodi

Research

000Founder · Researcher · Systems builder
KM
02Live
  • AI & Decision Support
  • Data & Research

Agricultural decision support that weighs every crop against your land, your water and your season.

Role
Founder & builder
Year
2025
Status
Live
grow.co.zw
GROW home page

Hover to scroll the page

Provinces analysed

Of crop & climate data

WCAG AA colour pairings

Accounts needed to start

01The problem

A farmer deciding what to plant needs to know what suits their land before spending money on seed. Broad national advice ignores the difference between Matabeleland South — drought-stressed in 28% of seasons — and Mashonaland East, which saw none.

Farming advice in Zimbabwe is usually one-size-fits-all in a country where conditions change sharply between regions. GROW evaluates each option against a farmer’s own location and circumstances — and explains why.

02What I built

  1. 01A recommendation engine that reasons across agronomic suitability, water availability and planting timing, and explains itself in practical units: “you would water in about 120 mm”.
  2. 02“Can I farm this?”, side-by-side comparison of up to four crops, and a what-if for the one question the engine can answer honestly: what if I could water this land.
  3. 03A season planner with budget, stage timeline and break-even, plus a daily view of what the weather means for the work.
  4. 04Ask Grow — an assistant that is told the crop, place, area, water source and stage before anything is typed.
  5. 05Offline-first plumbing: a service worker, an IndexedDB write queue for farm records, and client-side photo compression for metered data.
  6. 06research.grow.co.zw — the full working paper, scripts and data behind the approach, served from the same deployment.

03In the wild

GROW research archive
research.grow.co.zw — the paper, code and data
GROW on a phone

04Decisions that shaped it

01

Refuse to fabricate

Every crop guide leaves costs, yields and market prices empty on purpose. Where the data does not exist, the product says so and hands the money question to the farmer instead of inventing a number.

02

Built for a cheap phone on a bad connection

Self-hosted variable fonts (70KB for the pair), server components for public data, cached weather that falls back to yesterday’s forecast instead of an error.

03

A design system enforced at build time

One token file feeds Tailwind and a contrast audit. All 39 colour pairings pass WCAG AA with no waivers, and a value outside the system fails the build instead of shipping.

04

Value before sign-up

Discover and Plan live in a public route group no auth middleware touches. The access token lives only in memory; the refresh token is an httpOnly cookie.

05Stack

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Express
  • MongoDB
  • Zod
  • JWT
  • Open-Meteo
  • Hugging Face
  • Cloudinary
  • Service Workers
  • IndexedDB
  • Web Push
  • Python
  • Render
  • Vercel