Inspiration

I grew up seeing how much guesswork goes into smallholder farming in Zimbabwe. A neighbour plants maize in a region better suited to sorghum. Someone sells their crop the week prices are lowest because they didn't know a better window was coming. None of this is because farmers aren't skilled. It's because the information that would help them decide (rainfall patterns, regional crop fit, market timing, pest remedies) is scattered across government reports, radio bulletins, and word of mouth, if it's available at all.

Zimbabwe has over 1.8 million smallholder households farming 2 to 6 hectares, mostly rain fed. When a bad season hits, like the 2024 El Niño drought that cut rainfall by 40 to 60 percent in the south, the gap between good information and no information becomes the gap between food security and a lean season shortfall. I wanted to build something that closes that gap.

What it does

Zim-Agro is a farming dashboard built specifically around Zimbabwe's conditions. It pulls together:

  • A Five Regions Matrix that matches crops to Zimbabwe's five natural farming regions
  • A Precision Estimator that turns your acreage into planting and input numbers
  • A Market Clock that shows seasonal price patterns so farmers can time sales instead of guessing
  • Seasonal and vegetable calendars for planting and harvest windows
  • A Pest and Disease Gallery with practical, low-cost remedies
  • Live context from FEWS NET food security phases, TIMB tobacco floor prices, and World Bank climate data, so the guidance isn't generic, it reflects what's actually happening this season

Everything is static first and built to load fast on limited data, because that's the reality for most of the people who'd use it.

How I built it

The site is a Vite and React (React 18) single page app, with client side routing through react-router-dom. I kept the stack deliberately lightweight. No heavy frameworks, no unnecessary dependencies, because the target user might be loading this on a low end phone with patchy connectivity in a rural area, not a fast office wifi connection.

I sourced the regional and crop data from FEWS NET, TIMB, ZIMSTAT, and World Bank publications rather than generic agricultural advice, so every number on the dashboard traces back to something real and current, not a guess.

Challenges I ran into

Getting the natural regions matrix right took the most effort. Zimbabwe's five agro ecological regions each have different rainfall reliability and suited crops, and getting that mapping accurate, not just technically correct but actually useful to a farmer deciding what to plant, meant going back to source data multiple times rather than relying on a single summary.

Keeping the tool genuinely free and simple was also a constant tension. It would have been easy to add logins, paywalls, or complexity that looks impressive in a demo but adds friction for the person who just needs to know what to plant this month.

Accomplishments that I'm proud of

I'm proud that Zim-Agro isn't built on generic farming advice. Every figure on the dashboard, the food security phase, the tobacco floor price, the rainfall deficit, comes from a named, checkable source like FEWS NET, TIMB, ZIMSTAT, or the World Bank.

I'm also proud of keeping the tool completely free, so it actually works for the farmer it's meant to serve, someone on a limited data plan in a rural area, not just in a demo on fast wifi.

What I learned

Building for a specific community forces different decisions than building for "users" in general. Every design choice, from keeping the app static first to sourcing data from FEWS NET instead of a generic API, came back to one question: does this actually help a smallholder farmer in Zimbabwe make a better decision this season. That constraint made the project sharper, not smaller.

What's next for Zim-Agro

I want to expand the pest and disease gallery with more regional cases, and look at adding an offline mode so farmers with no connectivity in the field can still access their region's data.

Built With

Share this project:

Updates