AgriOS logoAgriOS

Case study · Nakuru County, Kenya

Building an agriculturaloperating system

How AgriOS connects farmers, the county's 73 physical markets, traders, suppliers and shoppers into one platform — what it refuses to do, what is already live, and the engineering behind it.

Built by
Steff Cloud Limited
Where
Nakuru, Kenya
Status
Live and onboarding
Updated
29 July 2026

AgriOS in one paragraph

AgriOS is an agricultural operating system built for Nakuru County, Kenya. It joins the parts of farming that are normally scattered across separate apps, WhatsApp groups and word of mouth — a marketplace where produce is actually sold, a reference directory of the county's 73 physical trading markets, live prices, weather, training, AI crop and livestock diagnosis, and escrow payments — into one connected platform. It is built and operated by Steff Cloud Limited, and it is free for farmers, permanently.

Key facts

Product
AgriOS — the Agricultural Operating System
Category
Agricultural marketplace, market intelligence and farm advisory platform
Built and operated by
Steff Cloud Limited (SteffCloud), reg. PVT-RQ13VMZZ
Founder
Antony Mungai, Founder & CEO
Home
Nakuru County, Kenya — engineered to scale nationally
Live at
agrios.steffcloud.co.ke
Status
Public platform live; onboarding farmers, traders, suppliers and shoppers
Cost to farmers
Free. No listing fee, no commission, no subscription — permanently
Stack
Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS v4, TanStack Query, Supabase, Vercel
Markets documented
73 physical markets across 11 sub-counties

The problem AgriOS was built to answer

None of what follows is a technology problem. Every one of these is a problem of information reaching the wrong person, too late, or not at all — which is precisely the kind of problem software is good for.

  1. The farmer is the last person to know the price

    A smallholder decides what to accept for a crop with less information than the person buying it. Prices move market by market and day by day, and that knowledge lives with brokers. The gap between what a buyer pays and what a farmer receives is a gap made of information, not of value.

  2. Selling on a promise

    Produce is handed over before money changes hands, and the farmer carries all of the risk. When the payment never comes there is no record, no recourse and no one to tell. This single fear shapes who a farmer is willing to sell to, and it keeps them tied to the buyer they already know.

  3. The county's own markets are undocumented

    Nakuru's physical trading markets are the backbone of the county's food economy, and almost none of them exist online in any usable form. Which days does a market trade? What moves through it? Is it even still open? That knowledge is local, oral, and invisible to anyone more than a few kilometres away.

  4. A sick crop is diagnosed too late, or wrongly

    An agronomist is expensive and far away. The usual alternatives are a neighbour's guess or an agrovet's best-selling product. By the time the problem is named correctly, a season's income can already be gone.

  5. One problem, one app, none of them talking

    Price apps do not know what you grow. Weather apps do not know where your buyer is. Marketplaces do not know that your crop is diseased. Each one asks the farmer to re-enter their whole life, and none of them add up to a picture of the farm.

The vision, and the lines that do not move

The farmer sits at the centre. Everyone else in the chain wraps around them — and the farmer never pays for the privilege of being there.
The founding principle of AgriOS — Steff Cloud Limited, Nakuru

AgriOS is named an operating system on purpose. An operating system is not a feature; it is the layer that lets everything else run together. A price is worth more when it knows which market it came from. A diagnosis is worth more when the medicine that treats it can be bought on the same screen. A sale is worth more when the money is already held. The value is in the joins, and the joins are what almost no one builds.

Farmers are never charged

No listing fee, no commission on a sale, no subscription, no premium tier aimed at farmers. This is enforced as a build rule: no pricing interface aimed at a farmer may be added to the codebase. Revenue comes from traders, suppliers and data services — from the side of the chain that already has margin.

An operating system, not another app

Every feature has to connect to another one or it does not belong. A diagnosis knows which medicine treats it; the medicine is on the marketplace; the marketplace knows which physical market you sell into; that market has a price feed and a trading calendar. Nothing is an island.

Money moves through a company account or it does not move

Every shilling is processed through the Steff Cloud Limited company bank account. AgriOS will never ask for payment to a personal M-Pesa number or a private wallet. That sentence is printed in the footer of every single page of the platform, because the most common fraud in Kenyan online trade is a convincing request to pay somewhere else.

Honest about what it does not know

Market coordinates carry a confidence level, and a market whose location is unverified renders no map at all rather than a confident wrong pin. The AI diagnosis returns its own confidence and is instructed to say when a photo is not enough. A wrong confident answer costs a farmer a harvest.

Fast on a cheap phone, on a bad connection

Designed at 360px first. Public pages are statically generated so they arrive as finished HTML. Fonts are self-hosted, charts have no charting library, maps have no map library, and the whole application runs on nine production dependencies.

Findable by people and by machines

Every public page is server-rendered with its own metadata, canonical URL and structured data. All 73 market pages, every course, every lesson and every live listing is individually crawlable — so a farmer searching for their own local market finds a real page about it.

What has been built

Marked honestly. “Live” means you can use it today at agrios.steffcloud.co.ke. “Next” means it is designed and scheduled, not shipped.

Marketplace

Live

Where a trade actually happens: produce, livestock, feeds, veterinary medicine, machinery.

  • Farmers list from their dashboard with multiple photos, price, unit, quantity and the physical market they sell into.
  • Public browse with filters, sorting and side-by-side comparison of two listings.
  • Every live listing gets its own crawlable page with product structured data.
  • Buyers order and message the seller in-app; sellers manage, pause and edit their own listings.

County markets directory

Live

A reference register of all 73 physical trading markets in Nakuru County — the first of its kind for the county.

  • Each market records its sub-county, ward, tier, type, status, trading days, peak days, opening hours, trader capacity, footfall and primary commodities.
  • Every record carries a data-confidence rating and a flag for what still needs field verification.
  • A live 'trading today' indicator, computed in the browser so a Sunday-only market is never described as open on a Tuesday.
  • Community price submissions per market, with the age of every price shown and stale prices marked.
  • Deliberately separate from the Marketplace: this directory is where you learn, the Marketplace is where you trade.

AI crop and livestock diagnosis

Live

Photograph a struggling crop or a sick animal and get a named problem, a severity, a treatment and a prevention step.

  • Camera capture straight from the phone, or a photo from the gallery.
  • The answer is returned in a fixed structure — problem, cause, severity, confidence, ordered steps, medicine, withholding period, prevention — so the interface never has to interpret prose.
  • It states its own confidence and is required to say when a photo is not enough to tell.
  • It flags when a case genuinely needs a vet instead of a product.
  • Every case is kept as a farm health record, and a farmer can choose to share a case with the community.

Escrow payments and wallet

Live

Money is held from the moment an order is placed and released only when the trade is confirmed.

  • The balance is never a stored number — it is always the sum of the ledger, so it cannot silently drift.
  • Held funds sit in a separate escrow record, visibly unspendable while a trade is open.
  • A flat one-shilling fee, charged to the buyer only, because farmers are never charged.
  • A trade settled in person can be marked as such; a trade that fails is refunded.
  • Insufficient balance is a normal step in the flow, not an error — it opens the top-up screen.

Farmer dashboard

Live

The farm as a working record: animals, crops, jobs, health, sales, money, buyers.

  • Livestock and crop registers with full editing, updating live across every device you are signed in on.
  • Tasks, orders, sales, a money ledger and a farm health score.
  • A real seven-day weather forecast for the farmer's own location.
  • Price and demand charts, planting guidance, and the county market directory built into the app shell.
  • Direct messaging with buyers, and a community feed shared with agronomists and other farmers.

Shopper dashboard

Live

Buying food directly from the farmer who grew it.

  • A kitchen list that tracks what you keep at home and what is running low.
  • Fresh produce posted by real farmers nearby, ordered farm-to-door.
  • Order tracking, delivery confirmation, a wallet and a full payment history.
  • In-season guidance and today's prices, so a shopper knows what is good value this month.
  • Every list can be downloaded as a spreadsheet or shared to WhatsApp — the data belongs to the user.

Learn

Live, still filling

Location-aware training: videos, full courses with lessons, events, guides and instructor profiles.

  • Courses split into individual lessons, each with its own page, in video or written form.
  • Free lessons open to everyone including signed-out visitors; paid courses gated honestly.
  • Content matched to what is growing — and failing — in the visitor's own area.
  • The catalogue is currently seeded with example content while instructor partnerships are signed.

Accounts, roles and onboarding

Live

One signup that adapts to who you are: farmer, shopper, trader, supplier, machinery owner or instructor.

  • A staged wizard that saves your progress as you go, so a dropped connection does not cost you the form.
  • Farmers are issued a farmer ID and a farm ID on signup.
  • Accept-then-verify: you can start using AgriOS immediately, and verification follows.
  • A device passcode lock with optional fingerprint unlock, sitting on top of the account session — for shared and borrowed phones.

Trust, safety and the law

Live

The unglamorous layer that decides whether anyone can be asked to put money through this.

  • A published payment policy naming exactly what a normal payment looks like and what fraud looks like.
  • The anti-fraud warning on every page of the platform, not buried in terms.
  • Cookie and device-storage consent built for the Kenya Data Protection Act 2019, documenting every single key stored on a device.
  • The operating company, its registration number and its physical address published openly.

Traders, suppliers and machinery owners

Next

Dedicated dashboards for the commercial side of the chain — the side that funds the free tier.

  • Bulk sourcing and demand signals for traders.
  • Demand heat maps for input suppliers, showing where to stock before the season turns.
  • Machinery hire, scheduled against the planting calendar.

Logistics and financial partners

Next

The phase-two layer: moving goods and moving credit.

  • Transport partners along the Nakuru corridor for hauls beyond farm-to-door range.
  • Credit and insurance products underwritten against a farmer's real, recorded trading history.
  • A farmer with two seasons of verified sales on AgriOS becomes a farmer a lender can actually assess.

By the numbers

73

markets documented

Across all 11 sub-counties of Nakuru

160+

crawlable pages

Every market, course, lesson and listing

9

production dependencies

No chart library, no map library, no UI kit

0 KES

charged to farmers

No fee, no commission, permanently

1 KES

flat fee per trade

Paid by the buyer, never the farmer

7 days

of real weather

For the farmer's own location, free

AgriOS is early. There are no user-count claims on this page because there are no user counts worth claiming yet — the platform is live and onboarding, and this section will grow honestly.

How it is built

Two hard requirements shaped every technical choice: it has to be fast on a cheap phone with a weak connection, and it has to be findable. Everything below follows from those two sentences.

The stack

LayerChoiceWhy
FrameworkNext.js 16, App Router, TypeScriptStatic and incrementally regenerated pages — finished HTML, fully crawlable
InterfaceReact 19 + Tailwind CSS v4Mobile-first from 360px; a tiny stylesheet
TypeLexend Deca, self-hostedNo font request over the network, no layout shift
DataSupabase — Postgres, auth, storage, realtimeRow-level security per user; changes stream to every device
FetchingTanStack QueryDeduplication, optimistic updates, stale-while-revalidate, polling that backs off
AssistantAnthropic Claude, structured outputA schema-shaped diagnosis the interface never has to parse
WeatherOpen-MeteoReal seven-day forecasts, no key, no cost passed to farmers
Charts & mapsHand-built SVGNothing to download, nothing to fail on a slow connection
HostingVercel, own domainDeploys in a minute, served from the edge

Five patterns applied everywhere data moves

  1. 1. Request deduplication

    Two components asking for the same thing at the same moment make one request, not two.

  2. 2. Optimistic updates

    A tap changes the screen immediately and rolls back if the server disagrees — vital on a slow connection.

  3. 3. Streaming

    Slow sections of a page arrive after the fast ones instead of holding everything up.

  4. 4. Stale-while-revalidate

    Cached data renders instantly, then quietly refreshes behind it.

  5. 5. Smart polling

    Live prices stop polling when the tab is hidden, so a background tab does not eat a farmer's bundle.

Where the data lives

Slow-moving truth is compiled into the build; fast-moving truth is in the database. The register of 73 markets, the course catalogue and the brand are code. Listings, orders, escrow, the money ledger, messages, farm records, health cases and market prices are Postgres rows, each locked to their owner by row-level security and streamed to the interface as they change. Anything that crosses between two people — placing an order, opening a conversation, releasing escrow — happens inside a single database function, so the permissions stay strict and the trade still lands on both sides at once.

Seven decisions that mattered

The parts worth writing down: where the obvious approach was wrong, and what replaced it.

Decision 1

The market register lives in code, not in the database

All 73 market records are typed data compiled into the build. Markets do not open and close weekly, and every market page has to be static and crawlable — a database read would have made 73 pages dynamic to save a file that changes twice a year. Only the prices are live. The register is the slow-moving truth; the price feed is the fast-moving one, and they are stored accordingly.

Decision 2

Anything that depends on today's date is computed in the browser

A statically generated page bakes its answer at build time. 'Trading today' rendered on the server would tell every visitor for the next week what was true on the day of the build — a Sunday market reported as open on a Tuesday. Date-dependent indicators are therefore hydrated on the client, using a mount signal rather than a state update, so the static HTML stays correct and the page still passes the project's own lint rules.

Decision 3

The wallet is a ledger, never a stored number

A balance column is a number that can be wrong. The balance on AgriOS is always the sum of every transaction, and held funds live in a separate escrow table so they are visibly unavailable rather than quietly deducted. This makes every figure on the money screen reconstructable from its history — which is the only version of a money screen anyone should trust.

Decision 4

Cross-user writes go through database functions, not the client

Row-level security means a buyer cannot write a row that belongs to a seller — correct, and the reason early orders were invisible to the person selling. Placing an order is therefore a single database function that writes the buyer's order, the seller's mirrored order, the escrow record, the conversation and the seller's notification in one atomic step. Permissions stay strict and the trade still lands on both sides.

Decision 5

No charting library, no mapping library

Charts are hand-built SVG. The market locator is a hand-built projection of real coordinates onto a drawing of Nakuru County. Both were originally third-party embeds; both were replaced after the embeds failed on exactly the connections this platform exists to serve — one map provider refused to be framed at all, the other needed a live tile server to render anything. What ships now has no external request in it and cannot go blank.

Decision 6

The application shell follows the person, not the URL

Tapping 'Markets' from inside a dashboard used to drop the user out of the app and back onto the public website. The fix was not to duplicate every public page inside the app: it was to let the shell decide. Public pages still ship as anonymous static HTML for search engines, and a signed-in visitor's browser re-frames that same page inside the app on first render.

Decision 7

The assistant is allowed to say it does not know

The diagnosis endpoint returns a structured answer with a mandatory confidence level, and with no assistant configured it returns 'unavailable' rather than a guess — the farmer fills in the case themselves and the health record is just as valid. Refusing to invent an answer is a product feature here, not a limitation.

How it came together

  1. 15 July 2026

    Foundations, marketplace and Learn

    Project set up, brand locked, SEO plumbing in place. The public site, the marketplace with filters and comparison, and the full Learn module with courses and lessons.

  2. 15 July 2026

    Accounts and the first two dashboards

    Role-aware signup and verification, then the farmer dashboard and the shopper dashboard — fifteen and sixteen screens respectively, each with its own navigation on mobile and desktop.

  3. 16 July 2026

    Everything becomes live data

    Real-time farm records, orders, money, messaging and community. Real seven-day weather. The device passcode lock. Charts across all three surfaces. Farmer listings begin appearing in the public marketplace.

  4. 26 July 2026

    The county markets module and the legal layer

    All 73 Nakuru markets documented and published, each with its own page. The company, payment-safety and cookie-consent layer. The platform moves to its own domain.

  5. 26 July 2026

    Escrow and a real trade flow

    Wallet, escrow, notifications and an order that lands on both sides of the trade at once.

  6. 29 July 2026

    AI diagnosis

    Photograph a crop or an animal, get a structured, confidence-rated diagnosis with a treatment — and a route to the medicine on the marketplace.

What comes next

The commercial side of the chain

Trader, supplier and machinery-owner dashboards. Bulk sourcing, demand heat maps showing suppliers where to stock before the season turns, and machinery hire scheduled against the planting calendar. This is the side that funds the free tier.

Credit built on a real trading record

A farmer with two verified seasons of sales on AgriOS is a farmer a lender can actually assess. Financial and insurance partners plug into that record rather than asking for collateral a smallholder does not have.

Logistics along the Nakuru corridor

Farm-to-door already works over short distances. Longer hauls need transport partners, coordinated in-app, so a farmer in Kuresoi can sell to a buyer in Naivasha without owning a lorry.

Deeper intelligence, county-wide

Price history per market, demand forecasting, and county-level agricultural data offered to agricultural offices and researchers — the picture of the county's food economy that nobody currently holds.

Whatever gets added, the first rule holds: farmers are never charged. Every new surface has to earn its money from the side of the chain that already has margin. How payments work.

Questions people ask

What is AgriOS?

AgriOS is an agricultural operating system for Nakuru County, Kenya. It combines a marketplace where farmers sell produce, livestock, feeds, medicine and machinery; a reference directory of the county's 73 physical trading markets with live prices; AI crop and livestock diagnosis; weather and market intelligence; training; and escrow payments — in one connected platform. It is built and operated by Steff Cloud Limited.

Who built AgriOS?

Steff Cloud Limited, a Kenyan technology company registered as PVT-RQ13VMZZ and based in Nakuru, founded by Antony Mungai. Steff Cloud builds and operates the platform end to end.

What does AgriOS cost a farmer?

Nothing, permanently. There is no listing fee, no commission on sales, no subscription and no premium tier for farmers. Revenue comes from traders, suppliers and data services. On an escrow trade the flat one-shilling platform fee is charged to the buyer, never to the farmer.

How does AgriOS protect a farmer from not being paid?

Payment is held in escrow from the moment an order is placed and released to the farmer when the trade is confirmed. The money is visible and unspendable by the buyer while the trade is open. Every payment is processed through the Steff Cloud Limited company bank account — AgriOS never asks anyone to pay a personal M-Pesa number or a private account, and any such request is fraud.

What is the difference between the AgriOS Marketplace and AgriOS Markets?

The Marketplace is where a trade happens: a farmer lists produce, a buyer orders it, money moves and the two sides message each other. Markets is a reference directory of the 73 physical trading markets of Nakuru County — where they are, which days they trade, what moves through them and what prices are being reported. You cannot buy in the directory; it exists so you know where and when to trade.

How does the AI plant and livestock diagnosis work?

A signed-in farmer photographs the affected crop or animal from the app. The image is analysed and returned as a structured answer: the likely problem, its cause, a severity, a confidence level, two to five ordered steps to take, the medicine that treats it with its rate and withholding period, and one prevention step for next season. The assistant is required to state low confidence honestly and to flag cases that need a vet rather than a product. Every case is saved as a farm health record.

Which areas does AgriOS cover?

Nakuru County first — all 11 sub-counties: Nakuru Town East, Nakuru Town West, Naivasha, Gilgil, Bahati, Subukia, Rongai, Njoro, Molo, Kuresoi North and Kuresoi South. The platform is built to extend to other counties without rework.

Is AgriOS an app I download?

No download is needed. AgriOS runs in a web browser on any phone or computer, which is deliberate: it costs no storage, needs no app store account and works on the low-end phones most farmers actually use. It can be added to a phone's home screen and behaves like an app from there.

Can a shopper buy directly from a farmer on AgriOS?

Yes. Shoppers get their own dashboard where they can browse produce posted that day by farmers nearby, order it farm-to-door, track the delivery, message the farmer and pay through the platform. Removing the chain between the field and the kitchen is the point.

Can county governments, researchers or partners work with AgriOS?

Yes. AgriOS holds structured, county-level agricultural data — market registers, price reporting, crop and livestock patterns — and is open to working with county agricultural offices, researchers, cooperatives, input suppliers, logistics operators and financial institutions. Contact Steff Cloud Limited at info@steffcloud.co.ke or +254 118 407 026.

Cite this case study, or talk to us

Reference

Steff Cloud Limited. “AgriOS case study — building an agricultural operating system in Nakuru, Kenya.” AgriOS, updated 29 July 2026. https://agrios.steffcloud.co.ke/case-study

Publications, researchers and partners are welcome to quote this page with attribution to Steff Cloud Limited and a link back. For interviews, data partnerships, county collaboration or press material, write to us — a real person answers.

AgriOS is a product of Steff Cloud Limited (reg. PVT-RQ13VMZZ), Opposite Emboita, Nakuru–Solai Road, Nakuru. Founded by Antony Mungai. Powered by SteffCloud.