Every field has a voice

Let your farm
talk to you.

Farmword turns raw sensor signals into a living voice — your field messages you when it's thirsty, when fungal risk is near, or when a node needs attention. No dashboards to babysit. Just the land, speaking plainly.

WhatsApp & Telegram Offline-first field app Farm & crop records Real agronomic meaning
The field is speaking
live · Kandy Valley
MQTT → words
the field is typing…
The voice

Raw numbers, translated into plain words.

A sensor reading means nothing on its own. Farmword reads between the lines and tells you, in a sentence, what your field actually needs.

soil_moisture: 24.2% · threshold < 25

"I'm thirsty. Water zone 3 before noon."

sent to the manager via WhatsApp

temp − dew_point: 1.8°C · fungal risk

"Cool and humid tonight — fungal spore risk. Ventilate the nursery."

sent to the agronomist via Telegram

battery_voltage: 3.4V · node #7

"I'm running low. Replace my battery this week."

logged in-app + technical alert

< 100
Sensors per node

Tuned for 5–30 estate plots.

100%
Offline-first

The field keeps speaking, even offline.

1-VPS
Single-node

FastAPI + EMQX + TimescaleDB.

0-Spam
Budget alerting

Only the words that matter.

How it works

Listen. Understand. Act.

01

Listen

Solar sensors whisper MQTT over TLS to an EMQX broker — a constant, quiet pulse from every plot, every 5–15 minutes.

02

Understand

FastAPI reads between the lines — VPD, Magnus dew point, and moisture deltas — turning data into genuine meaning.

03

Act

Your farm messages you what to do, in plain words — via WhatsApp, Telegram, or in the field app.

04

Record

Every reading, field visit, and crop decision is logged to its plot — a permanent ledger you can query, not a feed that scrolls away.

Farm ERP · Records & SDUI

More than an IoT dashboard. A ledger for your land.

Beyond the live sensor feed, Farmword keeps the full story of your farm — every site, plot, and crop, plus the field records your team captures. Even with no signal in the field.

FARM LEDGER
site → plot → crop

Organize land as sites → plots → crops. Each plot holds its boundary (GeoJSON), crop type, area, and every record attached to it.

Field visits

Soil tests, pest scouting, harvest logs — captured offline, synced later.

Photos & notes

Compressed media linked to each submission, uploaded resiliently.

Full history

Idempotent sync keeps one truthful record — no duplicates.

Agronomic meaning

Dew point, VPD & deltas stored alongside raw readings.

SERVER-DRIVEN UI

Forms aren't hard-coded. The server ships a schema, the Flutter app renders it — new field forms without a new app release.

schema.json
{
  "schema_key": "soil_test",
  "version": 4,
  "title": "Soil Test Form",
  "fields": [
    { "key": "ph_level",
      "type": "number",
      "required": true },
    { "key": "nitrogen",
      "type": "number" },
    { "key": "notes",
      "type": "text" },
    { "key": "photos",
      "type": "photo_list" }
  ]
}
Soil Test Form
5.8
22
Yellowing near northern edge…
+ up to 4 field photos

No app update needed — the server ships the form, the app renders it.

Stack

The voice box behind the voice.

EARS
EMQX

MQTT 5 · TLS 1.3 · QoS 1

MIND
FastAPI

Python 3.12 · Pydantic v2

MEMORY
TimescaleDB

PostgreSQL 16 · PostGIS · farm ledger

MOUTH
Flutter

Drift · SQLite · SDUI forms

Your farm is already talking. Are you listening?

Give every plot a voice and a memory — sensor alerts, farm and crop records, and offline field data from one affordable VPS.

✓ Apache 2.0 / open core ✓ Runs on 4 vCPU / 8 GB ✓ No cloud lock-in