Mnadhem
Un hub d'opérations pensé pour le commerce tunisien réel
- Rôle
- Développeur Full Stack
- Période
- 2026 — Aujourd'hui
- Stack
- Next.js · TypeScript +4
La plupart des logiciels de gestion de stock présupposent une entreprise qui bancarise tout, achète à des fournisseurs facturés et vend sur un seul canal. Une grande part du commerce tunisien ne coche aucune des trois cases. Mnadhem est construit pour l'entreprise qui existe vraiment.
01Le problème
Ici, les commerces, marques de mode et enseignes en vente directe fonctionnent avec un tableur, un carnet et une conversation de groupe. Le stock vit d'un côté, la trésorerie de l'autre, et le rapprochement se fait dans la tête de quelqu'un en fin de semaine — c'est-à-dire précisément trop tard pour agir.
Les outils importés échouent pour des raisons structurelles, pas cosmétiques : ils supposent le paiement par carte, des fournisseurs facturés, un canal de vente unique et un modèle fiscal qui ne correspond pas. L'écart n'est pas une question de traduction, c'est le modèle de données.
02L'approche
Je suis parti du registre de trésorerie plutôt que du catalogue produit. Chaque mouvement — une vente, un règlement fournisseur, un retour, des frais de livraison, un prélèvement du gérant — est une écriture sur un compte, et le mouvement de stock en découle. C'est cette inversion qui fait que les chiffres se rapprochent sans rituel hebdomadaire.
L'interface privilégie la vitesse de saisie sur l'exhaustivité. Enregistrer une vente tient sur un écran, sans champ obligatoire au-delà de ceux qui touchent à l'argent : un outil plus lent que le carnet n'est tout simplement pas utilisé.
- Registre de trésorerie en partie double comme source de vérité, le stock étant une projection dessus
- Saisie multicanale : boutique, messages privés sur les réseaux, partenaires de livraison
- Comptes fournisseurs tolérant les règlements partiels, informels et dans le désordre
- Accès par rôle : gérant, responsable de boutique et magasinier ont chacun une seule surface
03Architecture
Next.js App Router côté interface, avec des server components sur tous les chemins de lecture : les vues en liste n'embarquent presque aucun JavaScript client. NestJS derrière, un module par domaine — registre, stock, catalogue, identité — et PostgreSQL en dessous, avec des tables de registre en ajout seul.
L'ajout seul est une contrainte volontaire. Une erreur corrigée devient une écriture d'extourne plutôt qu'une modification : l'historique derrière un chiffre contesté reste toujours reconstituable. Dans un commerce au comptant, c'est la fonctionnalité principale.
- En développement et en usage actifs, modèle de données validé sur de vrais flux de boutique plutôt que sur des hypothèses
- Le tableau de bord répond aux deux questions qui comptent chaque jour : ce qui est en stock, et ce qui est dû
- Un produit que je porte de bout en bout — recherche, modélisation, API, interface et déploiement
Site web Dieture
La porte d'entrée d'une activité d'abonnement à 10 000 clients
Vous travaillez sur quelque chose de similaire ? J'aimerais en entendre parler.
Démarrer une conversation