TOKOSSA est une plateforme e-commerce mobile-first ciblant le marché béninois, principalement Cotonou. L'objectif est de maximiser les conversions avec une UX optimisée pour mobile et des moyens de paiement locaux.
Mobile-first absolu. Conversion avant esthétique. Rapidité avant features. Chaque décision technique doit servir une vente.
FRONTEND Next.js 14 (App Router) + Tailwind CSS
BACKEND API Routes Next.js (serverless)
DATABASE PostgreSQL + Prisma ORM
AUTH NextAuth.js + OTP WhatsApp
PAIEMENT KKiaPay (MTN/Moov/Wave) + Cash on Delivery
HÉBERGEMENT Vercel (frontend) + Railway ou Supabase (DB)
WHATSAPP Twilio WhatsApp Business API
EMAIL Resend.com
IMAGES Cloudinary
ANALYTICS Vercel Analytics + Facebook Pixel
tokossa/
├── app/ # Next.js App Router
│ ├── (shop)/ # Boutique client
│ ├── (account)/ # Compte client
│ ├── (admin)/ # Dashboard admin
│ └── api/ # API Routes
├── components/
│ ├── ui/ # Composants réutilisables
│ ├── shop/ # Composants boutique
│ ├── checkout/ # Composants checkout
│ └── layout/ # Navigation, layouts
├── lib/ # Utilitaires et configs
├── prisma/ # Schéma base de données
└── .ai/ # Agents et skills IA
├── agents/ # 5 agents spécialisés
└── skills/ # Skills techniques
| Agent | Rôle |
|---|---|
dev-agent |
Architecture, Next.js, Prisma, Performance |
commerce-agent |
Panier, Commandes, Stock, Promotions |
payment-agent |
KKiaPay, Webhooks, Transactions |
automation-agent |
WhatsApp, Emails, Notifications |
analytics-agent |
Facebook Pixel, Conversion tracking |
# Développement
npm run dev
# Build
npm run build
# Prisma
npm run prisma:generate # Générer le client
npm run prisma:push # Sync schéma
npm run prisma:studio # Interface visuelleCLIENT SYSTÈME ADMIN
│ │ │
│── Ajoute au panier ──► │ │
│── Checkout ────────► │── Crée Order (PENDING) ──► │
│── Paiement KKiaPay ──► │◄── Webhook KKiaPay ── │
│ │── Order → CONFIRMED │
│◄── WhatsApp confirm ── │── WhatsApp admin ────────► │
│ │ Admin → DELIVERING
│◄── WhatsApp suivi ── │ │
│ │ Admin → DELIVERED
│◄── WhatsApp final ── │ │
Sur chaque page produit :
- ✅ Timer urgence ("Promo expire dans...")
- ✅ Stock visible ("Plus que 4 en stock")
- ✅ Barre de stock colorée
- ✅ Livraison rassurante ("Livré demain")
- ✅ Paiement adapté (MTN/Moov/Cash visible)
- ✅ Bouton WhatsApp (fallback)
- ✅ Social proof ("Kevin vient d'acheter")
- ✅ Trust badges
Voir .env.example pour la liste complète.
// ✅ Server Component par défaut (data fetching)
export default async function Page() {
const data = await prisma.product.findMany()
return <ProductGrid products={data} />
}
// ✅ Client Component si interactivité
'use client'
export default function AddToCartButton() {
const { addItem } = useCartStore()
// ...
}// ✅ Sélectionner uniquement les champs nécessaires
const products = await prisma.product.findMany({
select: { id: true, name: true, price: true, images: true },
where: { isActive: true },
take: 20,
})- Toujours stocker en FCFA (entier)
- Formater avec
formatPrice()pour l'affichage
| Période | Objectif |
|---|---|
| Semaine 1-2 | 1ère vente |
| Mois 1 | 2-3 ventes/jour |
| Mois 3 | 10 ventes/jour |
| Mois 6 | 500 000 FCFA/mois |
TOKOSSA — Stack Next.js — Marché Bénin — Mobile First