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.
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.
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.
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.
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.
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.
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
LiveWhere 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
LiveA 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
LivePhotograph 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
LiveMoney 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
LiveThe 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
LiveBuying 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 fillingLocation-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
LiveOne 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
LiveThe 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
NextDedicated 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
NextThe 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
| Layer | Choice | Why |
|---|---|---|
| Framework | Next.js 16, App Router, TypeScript | Static and incrementally regenerated pages — finished HTML, fully crawlable |
| Interface | React 19 + Tailwind CSS v4 | Mobile-first from 360px; a tiny stylesheet |
| Type | Lexend Deca, self-hosted | No font request over the network, no layout shift |
| Data | Supabase — Postgres, auth, storage, realtime | Row-level security per user; changes stream to every device |
| Fetching | TanStack Query | Deduplication, optimistic updates, stale-while-revalidate, polling that backs off |
| Assistant | Anthropic Claude, structured output | A schema-shaped diagnosis the interface never has to parse |
| Weather | Open-Meteo | Real seven-day forecasts, no key, no cost passed to farmers |
| Charts & maps | Hand-built SVG | Nothing to download, nothing to fail on a slow connection |
| Hosting | Vercel, own domain | Deploys in a minute, served from the edge |
Five patterns applied everywhere data moves
1. Request deduplication
Two components asking for the same thing at the same moment make one request, not two.
2. Optimistic updates
A tap changes the screen immediately and rolls back if the server disagrees — vital on a slow connection.
3. Streaming
Slow sections of a page arrive after the fast ones instead of holding everything up.
4. Stale-while-revalidate
Cached data renders instantly, then quietly refreshes behind it.
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
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.
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.
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.
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.
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.
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.