Deliverist Mobile App
ShippedCustomer-facing logistics app for Saudi Arabia. React Native, real-time tracking, ZATCA-compliant invoicing.
ZATCA
Tax Compliance
10+
Payment Methods
3
Address Methods
20+
App Screens
Highlights
- →ZATCA-compliant invoice PDF generation built from scratch: bilingual content, QR code, 15% VAT line item, and Air Waybill with COD labeling all handled client-side
- →4-step booking wizard with 3 address input methods (Google Maps pin drop, manual text entry, Saudi Short Address Code) covering the full range of how Saudi users share locations
- →Public shipment tracking API with visual timeline so recipients can follow their delivery without an account, removing the support burden from the Deliverist team
The Problem
Saudi logistics is crowded. Aramex, SMSA, and J&T all compete for the same customers. Most apps treat Arabic as an afterthought and bolt on COD support last, even though COD accounts for 60 to 70 percent of Saudi e-commerce transactions. Deliverist needed a mobile app that worked Arabic-first from day one, covered the full booking-to-delivery loop in a single interface, and generated invoices that satisfied ZATCA requirements without a separate billing tool.
What I Built
4-Step Booking Wizard
Pickup location, destination, item details, and confirmation. Each step validates via Zod schemas. Three address input methods: Google Maps pin drop, manual text entry, or Saudi Short Address Code (printed on utility bills). The wizard persists state across steps so users can navigate back without losing data.
ZATCA Invoice Generation
On-device PDF generation with bilingual Arabic/English content. Includes a ZATCA-required QR code containing seller info, VAT number, invoice total, and tax breakdown. 15% VAT is computed per line item. Air Waybill with barcode and COD label renders when cash-on-delivery is selected.
Real-Time Tracking
Public tracking API endpoint with a visual timeline: booked, picked up, in transit, out for delivery, delivered. Recipients check progress without logging in. Push notifications fire at status transitions. React Query handles cache invalidation so the timeline updates without manual pull-to-refresh.
Arabic-First RTL
Every screen ships with full Arabic RTL layout via NativeWind logical properties and i18next. No English-only fallback screens. Text alignment, icon direction, and wizard step order all flip correctly. The app reads the system locale on launch and sets the direction accordingly.
Tech Stack
All projects- React Native
- Expo
- TypeScript
- Zustand
- React Query
- i18next
- Google Maps
- NativeWind
Related Projects
Interested in working together?