Product7 min read
Building SwiftGoma: a marketplace made for Goma
How we're building a marketplace and delivery platform for Goma, DRC, around cash, trust and the people who actually move the goods.
Written by Balekage Gael
Buying everyday goods online in Goma is still hard. Most people pay in cash, sellers don't always trust buyers, and buyers don't always trust what will arrive. The problem isn't the technology it's trust.
SwiftGoma is our answer: a platform that connects buyers, sellers and independent riders, so ordering, preparing and delivering happen in one flow that everyone can rely on.
Three roles, three apps
Each person in an order gets an app built for what they actually do:
| App | Built with | What it's for |
|---|---|---|
| Buyer | React Native + Expo | Browse shops, order, pay, track the rider, confirm delivery |
| Seller | React Native + Expo | Manage the shop and products, accept orders, work with riders |
| Rider | React Native + Expo | Take deliveries for a shop, navigate, confirm handoff |
Sellers: verified shops, full product price
Before a shop can sell, the seller is verified (ID, proof of address and shop details). That's the first layer of trust for buyers.
Sellers keep the full price of their products SwiftGoma takes no commission on sales. Instead, sellers pay a subscription. If a renewal fails, they get a 3-day grace period during which the shop keeps selling; only adding new products is paused. If it still isn't paid, the shop is hidden until the subscription is renewed, and then it comes back automatically.
Riders: independent, working with a shop
Riders are independent not employees of SwiftGoma or of the seller. A rider applies to join the shop of their choice, the seller accepts, and SwiftGoma verifies the rider's ID, vehicle and a selfie before their first delivery.
A seller can suspend a rider at any time, and any delivery that rider was handling is reassigned automatically, so no order gets stuck.
Paying the way Goma pays
Prices are shown in US dollars or Congolese francs, and delivery fees are calculated from the distance. Buyers can pay:
- by mobile money, through our payment partner MbiyoPay, or
- in cash on delivery, when the seller offers it.
SwiftGoma never stores mobile money details those stay with the payment provider.
The QR code at the door
Every order comes with a one-time QR code. When the rider arrives, the buyer shows it and the rider scans it. That scan is the moment the order is officially delivered: until then, the goods are the seller's responsibility; after it, they're the buyer's.
One scan settles the question "was it delivered?" for everyone involved.
For orders paid online, that same scan credits the rider's earnings to their wallet straight away.
Who earns what
| Paid online | Paid in cash | |
|---|---|---|
| Seller | Full product price, in their wallet | Full product price, handed over by the rider |
| Rider | Delivery fee minus a platform commission | The whole delivery fee |
| SwiftGoma | A commission on the delivery fee only | Nothing on the order |
Sellers and riders can withdraw their wallet balance whenever they need to.
Reviews people can trust
Buyers can only review a product or an order they actually received. Fake reviews, reviews posted by sellers about themselves, and paid reviews without disclosure are not allowed.
Under the hood
The three apps are built with Expo and React Native, on a Node.js and Express API backed by PostgreSQL. Socket.io keeps everyone's screen up to date as an order moves, Redis and BullMQ handle background work, Mapbox powers maps and live rider tracking, and push notifications and SMS codes keep people informed.
Built as a team
SwiftGoma is a team effort. I'm building it with Balekage Billy and Ketsia Kabunga. We're in active development of the first version more soon.