Run the collective, not the paperwork.
HatchX is operations software for layer-poultry collectives in India. Eggs come in from member farms, orders come in from housing societies and businesses, and somebody has to make those two meet every single morning. That is the job this does.
What it covers
Orders
Typed in, pasted from a society's WhatsApp group, or read by the bot. Pre-orders sit on a date until they are due.
Production
Daily egg logs per farm, graded C1–C4. Feed, water, weights and mortality alongside them.
Deliveries
Stops clustered by distance and ordered nearest-first, so a rider follows stop 1 → 2 → 3. Later-dated orders can be pulled into today's run.
Payments
Cash and UPI at the door, dues tracked per customer, farmer payouts and a day book the accountant can close.
Flock health
Vaccination schedules per flock, and body weight and daily feed checked against the Indbro breed standard for the birds' age in weeks.
Supply position
What is in stock, plus what the flock will lay this week, minus what is already promised. One number that says sell the surplus or stop taking orders.
Orders arrive as a conversation
A society's WhatsApp group, read for you.
Nobody writes their order on a form. They write “2 trays”, or “ఒక ట్రే”, or change their mind forty minutes later. Somebody used to read all of it and type it in. Paste the thread instead.
Pasted from the group
[6:04 am] Lakshmi: ఒక ట్రే please [6:07 am] Srinivas: 2 trays [6:11 am] Padma garu: రెండు ట్రేలు repu [6:18 am] Ravi: 1 dozen [6:40 am] Srinivas: sorry make it 3 trays [6:44 am] +91 98••• •••21: 15 eggs
Trays and dozens in two scripts, and a quantity correction later in the thread.
What came back
Recorded responses from the real endpoint, replayed — the schema is the one the product uses, field for field. Claude returns structured rows; the quantity conversions, the consolidation and the confidence gate are ours.
And it goes back out
Reminders, on your own business number.
Dues reminders and the farmer's morning brief go out over Meta's official WhatsApp Cloud API, from the collective's registered business number — not a phone in a drawer with a linked device.
WhatsApp only permits free-form text to someone who messaged you in the last 24 hours, and a customer being chased for payment is almost never inside that window. So every queued message carries the parameters for a pre-approved template as well as its plain text, and the right one is sent depending on whether the window is open. Messages move queued → sending → sent, and a failure stays visible as a failure.
The network is the constraint
It works where the signal doesn't.
A layer shed is not a place with good data. Every capture — eggs, feed, water, mortality, a weight sample, a sale at the gate — tries the server for six seconds and then stops waiting.
- The write is saved to the phoneNot held in memory, not lost to a swipe-away. It survives the app closing and the battery dying.
- Work carries onThe person logging is told it is queued, not that it failed, and moves to the next shed.
- Signal returns and the queue replays in orderEach row carries an id generated on the phone, so a replay that already landed hits the primary key and counts as done. Nothing is written twice.
Bad data never queues. A validation error or a permission refusal is shown immediately rather than parked for later, and a queued item that turns out to be one of those is held up visibly as failed. A ledger that silently swallows the writes it could not make is worse than one that stops.
Before anyone asks
What needs you this morning.
The owner and manager open to a single list across every farm they can see — not a dashboard to interpret, but the things that need a human today.
- Feed is about to run outRunway per farm from what is on hand and what the flock eats at its current age.
- A vaccination is dueScheduled per flock against the breed programme, not against a wall calendar.
- A farm has not logged todayThe signal a paper ledger can never raise, because a missing page looks exactly like a page nobody wrote.
Further out, the same data answers whether to take the next order at all:
Expected production is not a guess or last week repeated. Each flock has a hatch date, so it has an age in weeks, and the breed standard says what a bird of that age lays.
Built for the person holding the phone
Six roles, six different apps.
A delivery rider on a scooter and an accountant closing a month do not need the same screen, so they do not get one. Signing in decides what the app is.
| Admin | The whole collective — orders, farms, money, people. |
|---|---|
| Farm manager | Orders, deliveries and every farm's inventory. |
| Delivery | Today's run and nothing else. |
| Farmer | Their own farms' production and payouts. |
| Farm worker | Logging what the shed produced. |
| Accounts | The day book. |
It is built for cheap Android phones used one-handed, in a shed, in sunlight — with its own number pad so the keyboard never covers the digits being checked, text that scales for older eyes without breaking the layout, and every screen available in English, Hindi and Telugu.
Getting access
You will be given a farm code.
HatchX is not open to sign-up. A collective is set up with us first, and is issued a short farm code — the code, your mobile number and a PIN from your own admin are what sign you in. If you do not have a code yet, talk to us.
Each collective's data sits in its own database. Not a shared table with a column saying who owns the row — a separate project, with its own keys. One collective cannot read another's books even if something goes wrong, because there is no path between them to go wrong in.