An IoT dashboard for ESP32-based farm controllers, built because agricultural monitoring tends to arrive in fragments — a sensor here, a spreadsheet there, nothing in real time. GanSys puts sensors, actuators, cameras and pest-control schedules on one live view.
What it does
- A custom Node server rather than a serverless model, because live telemetry needs persistent WebSocket connections and MQTT for bidirectional device communication.
- C++ firmware on ESP32 that pushes readings and acknowledges commands through a device-sync API.
- Layered error boundaries, so one failed panel cannot blank the whole dashboard while somebody is standing in a field looking at it.
Worth calling out
The platform is not the spec
Serverless is the default answer and the wrong one here: devices hold connections open for hours. Choosing a long-running Node process was the decision that made the rest of the system possible.
Built to survive a bad connection
Field hardware reconnects, drops messages and reports stale values. The dashboard treats a stale reading as stale rather than as a current one, which is the failure mode that matters when someone is about to act on it.
Have something that needs building?