Ecommerce Template
Modern ecommerce template built with Next.js 16, React 19, Drizzle, Better Auth, Supabase, and Stripe.
Achetez et vendez en Haïti : produits physiques, fichiers numériques, formations et services de vendeurs haïtiens, avec des prix en gourdes.
Translation pending
CommerceTypeScript · PLpgSQLGitHub @eliezerphilippe0-specOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Marketplace haïtienne de produits physiques, produits numériques et services, pour les acheteurs en Haïti et dans la diaspora. Les vendeurs organisent la remise des articles physiques ; les fichiers numériques sont accessibles après confirmation du paiement.
Ce dépôt, dont le nom historique est Zabelie-Digi, porte le site https://zabelie.com/. Il ne désigne pas un second projet numérique indépendant. Voir les décisions d’identité actualisées dans CLAUDE.md.
npm install
cp .env.example .env.local # renseigner les clés Supabase / MonCash
npm run dev
App sur http://localhost:3000
| Commande | Effet |
|---|---|
npm run dev | Serveur de développement |
npm run build | Build de production |
npm run typecheck | Vérification TypeScript |
npm test | Tests unitaires (logique paiement pure) |
app/ Pages (App Router)
page.tsx Landing ultra-moderne
catalogue/ Catalogue produits/talents
produit/[slug]/ Page produit + checkout
components/ Composants UI réutilisables
lib/
sample-data.ts Données d'exemple (à remplacer par Supabase)
supabase/ Clients Supabase (browser + server)
docs/ Contexte produit, PRD, décisions, paiements
La source de vérité produit est dans docs/ :
docs/00-CONTEXTE.md — contexte complet (15 sections)docs/01-PRD.md — exigences produit, EPICsdocs/02-DECISIONS.md — décisions verrouillées + ouvertesdocs/03-PAIEMENTS.md — architecture paiement (EPIC 4, critique)Voir aussi CLAUDE.md (résumé toujours en contexte).
zabely/zabelie : coexistent, pas de grep-replace global.lib/products.ts lit le catalogue depuis Supabase si les variables d'env sont
présentes ; sinon il retombe sur les données d'exemple (lib/sample-data.ts).
La plateforme est donc démontrable sans base.
/connexion — inscription / connexion (Supabase Auth)./vendre — espace créateur : publier un produit + envoyer le fichier livrable./tableau-de-bord — créateur : solde wallet, ventes, produits, édition du profil./createur/[id] — profil public d'un créateur + ses produits./mes-achats — commandes payées + téléchargement (URL signée)./admin — back-office (rôle admin) : modération produits + suivi paiements.public/brand/)Photos du porteur du projet, normalisées (orientation EXIF corrigée) et optimisées pour le web 3G :
| Fichier | Usage recommandé |
|---|---|
eliezer-portrait.jpg (900×1200, ~100 Ko) | Portrait officiel — avatar du profil créateur (avatar_url: /brand/eliezer-portrait.jpg), page « à propos » |
eliezer-casual.jpg (900×1200, ~350 Ko) | Photo décontractée — contenus sociaux / à propos |
eliezer-welcome-25x.png | Visuel « Welcome 25X » — référence uniquement (contient une marque tierce, ne pas utiliser dans l'UI) |
⚠️ Ces fichiers sont servis publiquement une fois le site déployé.
Français (défaut) + Kreyòl ayisyen — bascule FR/KR dans la nav (cookie
zabelie_lang). Dictionnaire maison : lib/i18n.ts (parité des clés testée).
Surfaces acheteur traduites ; espace créateur en FR pour l'instant.
.github/workflows/ci.yml exécute typecheck, test et build à chaque push
et pull request (Node 22).
npm test — tests unitaires de la logique paiement pure (idempotence des clés,
statut MonCash, slugify).DATABASE_URL=postgres://… bash supabase/tests/run.sh — applique les migrations
puis vérifie idempotence (rejeu 3×), montant falsifié rejeté, commission par tier,
maturation J+7 et remboursement sans solde fantôme.🚧 Vague 1 en place : UI, schéma, paiement MonCash (EPIC 4), auth & espaces. Catalogue branché sur Supabase avec repli démo. Reste à connecter un vrai projet Supabase + identifiants MonCash sandbox pour un parcours de bout en bout, et l'upload des fichiers livrables.