August 20, 2024

FarmDots

Offline-first farm operating system to map boundaries, lay out rows and plants, log operations, and sync to the cloud.

  • React
  • RxDB
  • MapLibre
  • Konva
  • Cloudflare Workers
  • D1

FarmDots is an offline-first, map-based farm operating system built for orchard and permanent-crop farms: mango, citrus, berries, vineyards, drip blocks.

Draw farm boundaries on a satellite map, auto-generate rows and plants from spacing settings, manage drip irrigation by valve, log disease and irrigation events, export operational spreadsheets, and sync everything to the cloud when you are back online.

What it does

  • Global map: draw and edit farm polygons, satellite and topo layers, plant and valve markers, area metrics
  • Farm workspace: Konva canvas for pan/zoom, placing and dragging plants and valves, marquee selection, row guides
  • Grid wizard: auto-generate parallel rows and plants from spacing and bearing inside a boundary
  • Operations: per-plant health, yield, and issues; irrigation and disease event logs
  • Calendar: farm events with recurrence for irrigation, harvest, scouting, and more
  • Export: plants.xlsx, rows.csv, irrigation.csv, disease.csv
  • Offline-first: RxDB + IndexedDB, PWA installable, works without network
  • Cloud sync: push/pull to Cloudflare D1 via Workers API with geometry conflict resolution
  • AI (optional): Gemini farm context, chat, and multilingual voice intent via Sarvam

Architecture

React PWA (Vite + RxDB + MapLibre/Konva)
        ↓ /api
Cloudflare Worker (Hono + D1 + R2 + cron)
        ↓ optional
R Plumber analytics sidecar

Shared Zod entities and GeoJSON helpers live in workspace packages. Crop spacing templates ship as a separate package for mango, citrus, and other profiles.

Why I built it

Most farm software assumes desktop workflows and always-on internet. FarmDots is designed for people working in the field on a phone: draw a boundary, fill it with a grid, log what happened today, and sync when you get back to Wi‑Fi.