OTESC Store
A marketplace where independent sellers list products, customers shop and riders deliver. That’s really seven products in one, and they all run on a single backend I built.
- Client
- OTESC
- Scope
- 7 apps · web and mobile
- Stack
- Go · Next.js · Expo
- Status
- In development
The brief
OTESC wanted a proper marketplace, not just a shop. Customers need a storefront, sellers need somewhere to manage products and orders, admins need oversight, and riders need an app that tells them where to go. That adds up to seven apps: web apps for customers, sellers and admins, and mobile apps for shopping, selling and delivering.
What I built
All seven apps run on one Go backend, so when the rules for orders or pricing change, they change everywhere at once. The web apps are built with Next.js and the mobile apps with Expo, so they work on both iPhone and Android.
The part I’m proudest of is split shipping. A customer can send one checkout to several addresses, say a gift to their mum and an order for themselves. Each address becomes its own order, with its own rider and live tracking, but the customer only pays once through Paystack. Refunds are capped at whatever is left of that payment, so however many of those orders get refunded, the business can never pay back more than it took.
Small things that add up
Prices appear instantly in the apps and are then confirmed by the server. A shared set of test cases makes sure the two always agree, so a customer never sees one price and gets charged another.
Maps, routing and delivery batching run on free OpenStreetMap-based services by default, so the business isn’t paying Google every time someone types an address. Switching to Google Maps is one setting if they ever want it.
Built to grow
Seven apps in one codebase can get tangled quickly. I set up automatic checks that run on every change and stop code from reaching into places it shouldn’t, so the project stays easy to work on as it grows.
Tech
Go, Next.js, React, Expo, PostgreSQL, Redis, Paystack, Turborepo