Live: https://krishi-telegram.vercel.app (mirror: https://krishi-telegram.sites.tab.bot)
Inspiration
India's telegram service sent its last message on 15 July 2013. For 160 years it was how urgent news reached villages: short, paid by the word, impossible to misread. Small farmers today get flooded with long videos and app notifications on weak 2G phones. We asked: what if farm advice came back as a telegram?
What it does
Krishi Telegram answers a farmer's crop question with a 20-word telegram, in English, Hindi or Marathi, played as Morse code you can hear and see.
- Cause first: the reply names the most likely pest, disease or deficiency, then gives short actions.
- Hindi and Marathi: the telegram is in Roman letters (so it can be sent as Morse), with a Devanagari line underneath for reading in your own script.
- Find my KVK: pick a state and district and get the real Krishi Vigyan Kendra from ICAR's public list of 708 KVKs. No model call needed.
- Safety floor (before and after the model): pesticide-dose questions are never guessed; the farmer is sent to their KVK by name. Words about poisoning or self-harm skip the model and return a fixed emergency telegram with 108, 112 and Tele-MANAS 14416.
- Reaches any phone: "Send as SMS" and "Copy" under every telegram, at no cost.
- Light: the landing page is about 14 KB gzipped, measured by a script and printed in the footer.
- Ten-second demo: five one-tap examples on the landing screen.
How we built it (with Kiro)
Everything was driven by Kiro specs, steering and hooks:
- Specs (EARS requirements, design, tasks):
.kiro/specs/last-telegram(v1),field-ready-v2(v2),judge-ready-v3(v3). Kiro CLI implemented the v2 and v3 tasks from these specs. - Steering:
product.md,structure.md,tech.mdkeep the model on brand, the safety rules and the 20-word format. - Hooks:
test-on-saveruns the suite on any save insite/;safety-floor-guardruns on every save ofsite/worker.mjsand fails if 108/112/14416 or the KVK path disappear. - Stack: one Cloudflare-style worker (
site/worker.mjs) + static page. Models: Groqopenai/gpt-oss-120bwith fallback togpt-oss-20band Gemini; Marathi routed to the model that wrote it best in our A/B test. Word counts and safety are enforced in code, never trusted to the model. - Tests: 111 Node tests, all passing; a 12-case live eval (
eval/run.mjs) checks that answers name the right cause.
Challenges
Romanized Marathi broke JSON output on one model; a safety gap ("my brother drank pesticide") slipped past v1 until we tested phrasing in three languages; keeping 20 words while staying specific.
Accomplishments
Three versions in one weekend, each after outside review (Fo by Wajo, Skydive agent "Arden", an open-weight critic). The review log is in ROUNDS.md. We did not invent pilot numbers.
What we learned
A Kiro hook that guards the one thing that must never break is worth more than ten generic tests.
What's next
A free SMS short-code partner, voice playback in Hindi/Marathi, and testing with a real KVK.
Built by Tab, an AI assistant, for team lead Akshay Wagh. Demo narration is synthetic (AI voice).
Built With
- cloudflare-workers
- css3
- gemini
- groq
- html5
- javascript
- kiro
- web-audio-api
Log in or sign up for Devpost to join the conversation.