What did Restrologic build for Zippee?
Restrologic built the technology behind Zippee’s same-day delivery for D2C brands: a Go backend of ten services, a new React ops web app, a new React Native rider app and the cloud setup it runs on. Work began in May 2026.
The challenge
Zippee takes orders that brands push from their warehouse and order systems, and delivers them from dark stores within hours. That raises a short list of hard problems.
- Every stop must be visible. Ops need to see where each rider is, which shipments are pending, attempted or done, and which trips are running late.
- Proof must be real. A rider who taps “delivered” is not proof. Brands want a scanned tracking ID, an OTP from the customer, a photo, or some mix of them.
- Brands differ. One brand needs an OTP on every drop and another needs none for prepaid orders. The rider should never see those differences.
- The stack must keep running. A same-day business cannot lose its order book to a bad migration or a failed disk.
How did we approach it?
We split the work into three products that share one GraphQL gateway: the backend, the ops app and the rider app. Each has its own repository and its own history.
The backend is a set of Go services with clear jobs. Core holds sign-in, roles, brands and dark stores. Fulfilment holds orders, shipments, trips and manifests. Tracking holds GPS, geofences and attendance. Integration receives webhooks from warehouse and logistics systems. Notification sends WhatsApp, SMS and push messages. Reporting feeds dashboards. An audit service keeps an append-only trail, and a separate hub streams live updates to the browser.
What did we build?
Backend. Ten services talk over gRPC, with Kafka for events and GraphQL for clients. Rider positions arrive about every 5 seconds. Geofences are set per warehouse and can mark arrival on their own. Delivery rules are stored per brand: tracking-ID scan, photo and OTP can each be required at pickup and at delivery, and OTP can differ for prepaid and cash orders. A trip can end in a partial delivery, and the trip closes with return-to-store handled for what was not delivered.
Ops web app. A new React 19 app with typed GraphQL, role-based access and a map. Ops see a full-map trips board, shipment detail with history, scans and proof of delivery, manifests, brands, service zones and rider management. The first commit is dated 31 May 2026 and the work ran to early July.
Rider app. A new React Native app, built between 16 and 25 June 2026. Riders go online and offline, which starts and ends their shift. Pickup and delivery are step by step, with a native barcode scanner, a 4-digit delivery OTP, a photo as proof of delivery, and a geofence decision matrix with a fallback OTP. Location reporting runs in the background, flushes every 5 seconds, and pings every second near the stop. Return-to-store is a bulk, scan-based step that retries without losing state.
Cloud setup. The production fleet is defined in Terraform and configured with Ansible. It runs on AWS: three application nodes on Docker Swarm, a PostgreSQL 18 cluster with a leader, a synchronous replica and a separate reporting replica, a Redis pair with Sentinel, and an observability node running Prometheus, Grafana, Loki and Alertmanager. Admin tools are reachable only over a private network. In August 2026 we added continuous WAL archiving and encrypted off-site backups for point-in-time recovery.
What came out of it?
| Area | Result |
|---|---|
| Backend | 10 services, first commit 8 May 2026 |
| Rider tracking | GPS about every 5 seconds, every second near a stop |
| Ops app | Live trips board, shipment detail, manifests, brands, service zones |
| Rider app | Scan, OTP, photo proof, geofence OTP, shifts, bulk return |
| Recovery targets | Up to 5 minutes of data at risk, full rebuild within 2 hours |
The recovery numbers are targets set in the backup design, which states that a backup nobody has restored does not count. A restore drill is still pending. For a closer look at the delivery domain, see delivery and quick commerce.
What is the stack?
Go, GraphQL, gRPC, Kafka, PostgreSQL with TimescaleDB and Redis on the backend. React 19, Vite, TanStack Router and Apollo on the ops app. React Native on the rider app. Terraform, Ansible, Prometheus, Grafana and Loki for the cloud.
Timeline
| When | What |
|---|---|
| 8 May 2026 | Backend work starts |
| 31 May 2026 | Ops web app starts |
| 16 to 25 June 2026 | Rider app built |
| 28 June 2026 | Partial delivery added |
| 10 July 2026 | Terraform and Ansible fleet |
| 25 August 2026 | Point-in-time backups |
| October 2026 | Continuing infrastructure work |
If you run delivery operations and want something similar, read about custom software and integrations or talk to us.