SwiftTransit
An on-demand courier app for Lagos, built in Expo for iOS and Android with two roles in one app. Customers book a pickup and drop-off for documents, parcels, food or groceries, see the price before paying and track the order; couriers go online, accept nearby jobs and deliver them.
- Role
- Solo Developer
- Duration
- Ongoing
- Year
- 2026
- Type
- dev
Problem
Sending a parcel across Lagos usually means a phone call, a haggled price and no idea where the rider is. Addresses are often landmark-based, map data is patchy off the main roads, mobile data is expensive and networks drop. A courier app here has to quote an honest price up front, work with a dropped pin and free-text directions, stay useful offline, and keep money and order status out of the client's hands.
Solution
One Expo codebase serves both roles, with the role chosen at sign-up and enforced by a route gate. Supabase carries the backend: Postgres with row-level security on every table, tested so one user cannot read another's orders, an order status machine and wallet ledger that only change through SQL and Edge Functions, and private storage for package photos. Sign-in works by phone or email OTP (SMS through a Send SMS hook), Google or Apple. The six-step booking wizard (type, pickup, drop-off, receiver, package, schedule) takes a map pin, an address search or a saved address, prices the trip in SQL from Geoapify routing, and confirms with a tracking number after a mocked payment. The orders tab pages, filters and searches by tracking number, and each order shows a status timeline with honest refund copy on cancel. Money is integer kobo throughout, phone numbers default to +234 in E.164, all copy runs through i18n for Pidgin, Yoruba, Hausa and Igbo later, and every screen supports light and dark mode, Reduce Motion and font scaling. CI runs typecheck, lint, format and over 300 tests on every PR. Next up: the courier application, delivery requests, live tracking, chat, wallet and push notifications.