Tech · case study
Bullion
Buying from twenty centres as if they were one counter.
Bull buys castor, groundnut and other crops from farmers at collection centres across North Gujarat and Kutch, and sells to processing factories. Before Bullion, every purchase lived in a Telegram message and an Excel sheet: anyone could claim a quantity, nobody could see the stock in a centre, weight disputes were daily, and a farmer's payment took days of back-and-forth.
Bullion is the system of record I built for that. One purchase is one inward, raised by the centre supervisor on a phone, approved by the office, and settled to the farmer's bank, with the stock ledger updated as a side effect of the approval rather than a separate job.
Before
- Purchases announced in Telegram groups, tallied in Excel.
- No approval step, so quantities were claimed, not confirmed.
- No view of stock per centre; factory dispatch planned by phone.
- Farmer payment took days and had no audit trail.
Now
- Every inward carries the farmer's identity, land record, grade, weight, a photo of the lot, and who created and approved it.
- The office sets the day's price per grade; nothing converts until it approves.
- An immutable ledger: a reversal is a negative entry, never an edit.
- Thirty-six push-notification events keep every role in the loop.
- Payment that took days clears the same day.
How it works
The farmer arrives at the centre
The supervisor raises an inward on the phone: name, Aadhaar, land passbook, the lot's photo.
Grade before price
Quality is graded at the counter. The price for that grade was set by the office that morning.
Weight on the scale
Weight goes in with the weighbridge slip. The number is the number; there is nothing to argue about later.
Office approvalCheck
A manager approves the inward from the web dashboard. Until then it is a request, not a purchase.
Ledger and payment
Approval writes the stock ledger and releases the farmer's payment to the bank in the same step.
Dispatch
Factory deliveries are planned from the stock that actually exists, centre by centre.
What it changed
- Quantity disputes dropped to almost none once the approval step existed.
- Founders see GMV and stock across all twenty centres on one screen every morning.
- Every farmer inward carries KYC, which is what lets Bull promise factories farm-level traceability.
On screen


Built with Django and Django REST Framework, PostgreSQL on AWS RDS, Celery with Redis, S3 for documents, Expo push; a Next.js 15 dashboard in a Turborepo with TanStack Query and Table.