Notes from the field
Delivering farm schemes to millions, on rails a state can own
What it takes to run a state agriculture department's scheme delivery at population scale — sovereign, multilingual, and resilient to the last mile.
- Agriculture
- Government
- DPI
- Scale
A state agriculture department is, in software terms, a delivery problem at population scale: millions of smallholders, dozens of welfare schemes — subsidies, equipment, direct benefit transfers — and a chain of district and block officers who have to make it all happen with patchy connectivity and many languages.
What we walked into
The incumbent system was an aging proprietary stack: a single vendor, per-seat licensing on the dashboards, and a change request (and an invoice) for every new scheme. Farmer records, land parcels, and scheme eligibility lived in silos that didn’t agree on something as basic as which village a farmer was in. And none of it could move to a foreign cloud — government data has to stay on home soil.
What we did
-
Farmer + land
registry on canonical geography
-
Eligibility
scheme rules as config
-
Field officer
offline-tolerant app
-
Sanction + DBT
auditable workflow
-
Dashboards
open BI, no licences
We modelled the whole domain as a modular monolith on PostgreSQL — one image that runs as a demo and scales out by configuration. The spine was canonical government geography (district → block → panchayat → village), so every module finally spoke the same location language. Scheme logic became configuration rather than code, the 20-plus proprietary dashboards were rebuilt on an open analytics stack, and we migrated entity by entity — pulling from the legacy system by reference until each domain was ready to cut over.
What made it work
- Canonical geography as the join key across every module and dashboard.
- Scheme-as-configuration — a new programme ships same-day, not as a change request.
- Offline-tolerant field app for officers working past the edge of coverage.
- Open BI — recurring per-seat licensing removed entirely.
- Promote-to-scale — one artifact from pilot district to whole state.
Why we built it this way
Every choice falls out of the constraints. Government procurement and data residency make sovereignty non-negotiable, so the stack is open and self-hostable. Scale makes a normalised geography the difference between reports that reconcile and reports that don’t. Low rural connectivity makes offline tolerance a requirement, not a nicety. And political timelines make a big-bang migration a career risk — so we made it incremental and reversible, with a working system at every step.
Building something like this?
We'd rather talk specifics than slogans. Tell us what you're trying to build.
Talk to us