Robodor makes industrial door-controller boards. Doorodor is the platform that brings them online. Each controller pairs with a small ESP32 gateway that carries it onto the internet, so an operator can watch a whole fleet of doors, receive alarms, change settings, and even update a controller's firmware remotely — from the web or a phone, anywhere. It is a complete product: a web dashboard, native iOS and Android apps, the gateway's own firmware, organizations with accounts and roles, and subscription billing. Safety comes first — the door's local safety inputs (photocell, fire, emergency-stop) always override anything sent from the cloud.




The backend is a TypeScript Fastify service on AWS EC2, with a self-hosted EMQX broker carrying MQTT v5 over TLS 1.3 — every device authenticates with its own credentials under a topic ACL that denies anything unmatched. Data lives in PostgreSQL (Neon) with Redis for live state. Each RF15 controller pairs one-to-one with an ESP32 gateway (ESP-IDF firmware) over a direct Modbus-RTU UART link; the gateway also exposes a BLE bridge so the existing local app drives it unchanged. Three clients sit on one contract: a Next.js web dashboard and native iOS (SwiftUI) and Android (Kotlin/Compose) apps — each a compound app that keeps the offline BLE mode and adds a cloud realm behind Clerk authentication. Remote firmware programming runs cloud → gateway-as-programmer → controller, gated by the bootloader's physical emergency-stop interlock. Billing is a per-organization freemium model through Paddle. I built it end to end — cloud, gateway firmware, web, and both mobile apps.