The product
Pool Nexus replaces a pool's analyser, dosing pump, timer and lighting remote with a single connected box. It continuously measures pH, redox potential (chlorine), temperature, water level and flow, then corrects on its own: dosing, filtration, heating, filling, lighting.
The core idea: everything that matters is decided in the box. The cloud adds comfort, but regulation keeps running without internet, and every measurement stays available locally to Home Assistant, Jeedom or Domoticz.
The hardware
The box runs on two microcontrollers. A master ESP32 board reads the probes (DS18B20 temperature, calibratable pH and redox, flow, level) and drives eight relays: filtration pump, heater, two lights, chlorinator or doser and auxiliary outputs. On first boot it opens its own Wi-Fi access point so it can be set up from a phone.
A second ESP32-S3 board drives a 480×320 touchscreen with LVGL: water status, pump and light controls, probe calibration, Wi-Fi and MQTT settings, pairing and locking, in French and English. Both boards talk over a serial link.
The back-end
On the server side, a containerised microservices architecture with Docker: a .NET API gateway, a Node.js authentication service, user management and notifications in Go, hardware management in Node.js, plus dedicated services for newsletters, support, the forum and monitoring.
Boxes publish their telemetry to a Mosquitto MQTT broker over TLS with mandatory client certificates. The hardware service runs its own certificate authority to issue them, and each box can only access its own topics. Measurements are stored in MongoDB, accounts and configuration in PostgreSQL, and everything is monitored with Prometheus, Grafana and Loki.
The web apps
Five web apps share a single sign-on across all subdomains: the showcase site in five languages, the professional area for pool technicians and installers (clients, hardware, team, adding a box by QR code), the internal back office (companies, hardware, tickets, alerts, billing, server health), the developer portal with an API explorer and forum, and the account area to manage preferences or delete one's account.
The mobile app
Built with Expo and React Native for iOS and Android, the app shows live measurements and their history as charts, sends a push notification when a value leaves the ideal range, and adds a box by scanning its QR code. It is in beta on the Google Play Store and the App Store.
Tech stack
- ESP32 & ESP32-S3Master board (sensors, relays, MQTT) and touchscreen board, in C++ with PlatformIO
- LVGLUI of the box's 480×320 touchscreen
- MQTT (Mosquitto)Real-time telemetry and commands, encrypted with mTLS
- Go, Node.js & .NETMicroservices: API gateway, authentication, users, hardware, data
- PostgreSQL & MongoDBAccounts and configuration on one side, measurement history on the other
- React, Vite & Next.jsShowcase site, pro area, back office, developer portal and account area
- Expo & React NativeiOS and Android mobile app
- Docker, Prometheus & GrafanaDeployment, monitoring and logs
Security & sovereignty
- Each box authenticates with a certificate (mTLS) issued by an internal certificate authority
- MQTT permissions isolated per box: no anonymous access, no access to anyone else's data
- Short-lived ES256 access tokens, verified by each service
- Data hosted in France with OVHcloud
- Support can access an account only with the user's consent
- Fully local operation possible: regulation doesn't depend on the cloud




