Sites Web10 min de lecture

Last-mile delivery startup Afrique : stack tech 2026 (Glovo-killer)

Mohamed Bah·Fondateur, Kolonell
22 mai 2026
Partager :
Last-mile delivery startup Afrique : stack tech 2026 (Glovo-killer)

Last-mile delivery startup Afrique : stack tech 2026 (Glovo-killer)

Sites Web

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étriqueMois 6Mois 18
Commandes/jour80850
Drivers actifs1295
Merchants partenaires28240
Commission moyenne13 %14 %
GMV mensuel18M FCFA280M FCFA
Revenue plateforme2.3M39M

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.

Tags :#Last-Mile#Delivery#Glovo#Afrique#Startup#Logistique
Partager :

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.