The challenge
IoT apps fail on the unglamorous parts: pairing a device over an unreliable local network, and behaving sensibly when the device is offline or the phone is on mobile data.
What we built
- Pairing flow designed around failure — clear recovery at every step rather than a single path that assumes success.
- Local control where the phone and device share a network, cloud relay where they do not.
- Optimistic UI with reconciliation, so the interface responds immediately and corrects if the device disagrees.
- Scheduling handled device-side, so routines run whether or not the phone is present.
Outcome
Lighting responds instantly on the local network and still works when the phone is elsewhere, which is the behaviour users assume.
Built with
Need something similar? IoT Development — or book a free scoping call.



