Glovo, Yango Food, Heetch Food dominent le last-mile delivery dans les capitales africaines. Mais leur commission (22-28 %) étouffe restaurants et boutiques. Une startup last-mile locale, focused 1-2 villes, peut être rentable dès 200-500 commandes/jour avec stack tech moderne.
TL;DR
- Stack : Next.js apps (client + driver + merchant) + Postgres + Mapbox + Wave.
- Différenciation vs Glovo : commission 12-15 % + meilleure UX merchant + paiement Wave/OM natif.
- Marché : Dakar, Abidjan, Douala, Lagos secondaires (Bamako, Cotonou, Ouaga).
Architecture 3 apps
`
[Customer app : commande + payment]
↓
[Merchant app : reçoit + prepare + ready]
↓
[Driver app : pickup + delivery]
↓
[Backend orchestration]
├── Routing intelligent (Mapbox Optimization API)
├── Pricing dynamique (zone + heure)
├── Paiement Wave / OM / cash
└── Notifications WhatsApp + push
`
Modèle de données
`prisma
model Merchant {
id String @id @default(cuid())
type String // RESTAURANT / GROCERY / PHARMACY / RETAIL
businessName String
address String
gpsLat Float
gpsLng Float
hours Json
preparationTimeAvgMin Int
commissionRate Float // 12-15 % typique
walletProvider String
walletNumber String
isActive Boolean
}
model Driver {
id String @id @default(cuid())
firstName String
lastName String
phone String
whatsapp String?
vehicleType String // MOTO / VELO / VOITURE
registrationNumber String?
cniScan String? // KYC
walletProvider String
walletNumber String
rating Float?
totalDeliveries Int @default(0)
isActive Boolean
currentGps Json?
currentStatus String // OFFLINE / ONLINE / DELIVERING
}
model Order {
id String @id @default(cuid())
customerId String
merchantId String
driverId String?
items Json // [{name, qty, price}]
subtotal Int
deliveryFee Int
commission Int // pour plateforme
total Int
status String // PLACED / ACCEPTED / PREPARING / READY / PICKED_UP / DELIVERED / CANCELLED
paymentMethod String
paidAt DateTime?
pickupGps Json
deliveryGps Json
estimatedDeliveryAt DateTime?
actualDeliveryAt DateTime?
customerRating Int?
Besoin d'un site web professionnel ?
Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.
driverRating Int?
}
`
Routing intelligent
`tsx
// jobs/dispatch-order.ts
async function dispatchOrder(orderId: string) {
const order = await getOrder(orderId);
const merchant = await getMerchant(order.merchantId);
// Trouver drivers ONLINE dans rayon 3km du merchant
const candidates = await prisma.driver.findMany({
where: {
currentStatus: 'ONLINE',
isActive: true,
// PostGIS distance query
},
take: 10,
});
// Score par : distance, rating, batch potentiel
const ranked = candidates
.map(d => ({
driver: d,
score: computeDispatchScore(d, order),
}))
.sort((a, b) => b.score - a.score);
// Notifier top 3 séquentiellement (15 sec timeout chacun)
for (const { driver } of ranked.slice(0, 3)) {
const accepted = await offerOrderToDriver(driver, order);
if (accepted) {
await prisma.order.update({
where: { id: orderId },
data: { driverId: driver.id, status: 'ACCEPTED' },
});
return;
}
}
}
`
Pricing dynamique
`ts
function computeDeliveryFee(order: OrderInput) {
const baseRate = 1000; // FCFA
const distanceKm = computeDistance(order.merchantGps, order.deliveryGps);
const distanceFee = distanceKm * 200;
// Surge selon heure
const hour = new Date().getHours();
const isPeak = (hour >= 11 && hour <= 14) || (hour >= 18 && hour <= 22);
const surgeFactor = isPeak ? 1.4 : 1.0;
// Météo (pluie = +20 %)
const isRaining = await checkWeather(order.merchantGps);
const weatherFactor = isRaining ? 1.2 : 1.0;
const total = (baseRate + distanceFee) * surgeFactor * weatherFactor;
return Math.round(total / 100) * 100; // arrondi 100 XOF
}
`
Cas réel — startup Dakar (Gora Express)
| Métrique | Mois 6 | Mois 18 |
|---|---|---|
| Commandes/jour | 80 | 850 |
| Drivers actifs | 12 | 95 |
| Merchants partenaires | 28 | 240 |
| Commission moyenne | 13 % | 14 % |
| GMV mensuel | 18M FCFA | 280M FCFA |
| Revenue plateforme | 2.3M | 39M |
Pièges fréquents
- Concurrence sur prix vs UX — battre Glovo sur 5 % moins cher est dur. Battre sur UX merchant + paiement Wave natif est plus défendable.
- Drivers churn — recharge wallet immédiate (pas T+7) = fidélité.
- Pas de SAV instant — chaque incident livraison demande humain. Investir.
- Densité critique pas atteinte — sous 80 commandes/jour, drivers démotivés.
- Crash app peak hours — load testing Locust + observability Sentry critique.
FAQ
Q : Investissement initial ?
R : 80M-200M FCFA pour MVP solide + 12 mois ops. Investisseurs : 4DX Ventures, Norrsken22, Partech Africa.
Q : Concurrence ?
R : Glovo, Yango, Heetch. Mais marchés secondaires (Bamako, Ouaga, Lomé) peu saturés.
Conclusion
Last-mile delivery startup en Afrique 2026 = niche locale rentable mais demandant exécution propre. Battle Glovo direct = mort. Niche secondaire ou différentiation merchant = viable.
Mohamed Bah
Fondateur, Kolonell
Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.
