Metrix Montazh
Offline-first app that lets field installers file work-completion acts with no signal, syncing when back online.

- Built with
- React, TypeScript, PWA
- Year
- 2026
- Status
- Live
Paid delivery, used daily by installer crews
IoT-Exponenta installs water meters across Kazakhstan. When an installer puts one in, it has to be registered in the Smart Metrix admin — the modem, the meter model, the address, the consumer, the first reading. The catch is where that work happens: basements, utility rooms, new-build floors with no coverage. The existing way through was a desktop admin panel, which is not a thing you use standing on a ladder.
So it's a phone-first React PWA with no backend of its own — it talks straight to the Smart Metrix REST API. Anything unfinished is a draft, anything finished but unsent goes into a queue, and both live in local storage keyed per account so two installers sharing a phone don't see each other's work.
The queue flushes when the app opens, when the browser fires an online event, and once a minute in the background. Whatever fails stays queued and goes again next time. The reference dictionaries behind the form — 224 meter models, 111 installation places, 228 object types — are cached for 24 hours, so the form is usable the instant it opens instead of waiting on three round trips.
I should be straight about the limit: it is not fully offline. You find the modem by scanning or typing its serial, and that search goes to the API, so the queue rescues an installer who loses signal partway through a form, not one who arrives with none at all. Caching the device list would close that gap and it's the next thing I'd do.
Most of the work wasn't the UI. The API had no usable documentation, so I reverse-engineered the contract from a captured production request and wrote it down as a spec before touching anything — then built per-region scoping on top, so an installer assigned to one city only sees that city's equipment. It's a paid delivery and installer crews use it daily.
