Client platform · Water delivery
WATR: Water ordering and delivery platform
Customers order water in the app, the office sees every driver on the map, and a text that fails the first time is sent again automatically.
- Type
- Client platform
- Sector
- Water delivery
- Status
- Built by us, owned by the client
- Runs on
- Customer and driver apps, an operations dashboard and an SMS gateway

Who it is for
If you deliver water by tanker, your office phone never stops. Customers order by phone, then call again to ask where the tanker is. The office hunts for each driver, and a text that fails to send is lost. In WATR the customer, the driver and the office see the same order, each in their own app or dashboard.
How a working day runs
The customer opens a new order and picks the quantity in cubic meters and the water type: drinking, filtered or non-drinking. They choose the earliest delivery or a day and time slot, then pin the address on the map. They pay the driver in cash on delivery and can add a discount code. The driver's app receives the order with the address, route and next stop. The customer follows the tanker on the map, and a text tells them it is on its way. The current order sits on the home screen, and every order under My Orders. The office sees every driver and order on its dashboard and spots a late order before the customer calls.
What makes the difference
- Every text enters a send queue that retries when delivery fails and records the result of each attempt.
- Customer app, driver app and dashboard read one tanker position, so the office sees what the customer sees.
- A customer who picks a recurring order gets a reminder message to reorder from the app without calling the office.
- Before confirming, the customer sees the price, tax, discount and total, so they know what they will pay the driver.
How it is built
We built the customer and driver apps in Flutter, since both follow the same order on one map. Firebase holds the order and the tanker's live position, and the operations dashboard reads the same picture. Cloud Functions run server-side work that should not depend on a phone, such as sending texts. A send queue with retry resends failed texts and logs the result, and Maps draws the route.
- Customer app
- Driver app
- Operations dashboard
- SMS gateway
- Flutter
- Firebase
- Cloud Functions
- Maps
- Queue & Retry
Screens9 screens
Scroll to move between screens.
Step 1 of 9
Questions buyers ask
Can the customer choose the delivery time?
Yes. They pick the earliest available delivery and see the expected time before confirming, or set a day and time slot that suits them. They can also make the order recurring and receive a reminder message to repeat it.
How does the customer know where the tanker is?
The customer follows the tanker on the map in the app from departure to arrival. The office sees the same position on its dashboard, and the customer can message the company from the app's Contact Us section.
What happens when a text message fails to arrive?
The message waits its turn in a send queue, and if the first attempt fails, the system resends it automatically. The result of every attempt is kept in a log you can check when a customer asks.