Lehmora Labs

Tenir les comptes des tontines et des écoles, sans jamais tenir leur argent.

Lehmora Labs est un studio d’ingénierie logicielle basé à Douala. Pour les tontines et les écoles, nos produits enregistrent qui doit quoi, depuis quand, et qui a confirmé le règlement. L’argent, lui, va du payeur au bénéficiaire sans transiter par nous.

Tontine des Amis de BonamoussadiCycle 3, Tour 5 sur 8

Échéance
25 oct.
Clôture
1 nov., délai de grâce de 7 jours
Cotisation
25 000 XAF
Bénéficiaire
Esther K.
ContributeurConfirmé leReçu
Aïcha M.25 oct.25 000
Brice N.26 oct.25 000
Carine T.27 oct.25 000
Didier E.29 oct.25 000
Fabrice O.30 oct.25 000
Grâce A.31 oct.25 000
Hervé B.non réglé0
Attendu, 7 × 25 000
175 000
Reçu par Esther K.
150 000
Dette de Hervé B., née à la clôturele suit d’un cycle à l’autre
25 000
Fonds détenus par Tallyno
0 XAF

Chaque paiement est déclaré par le contributeur, puis confirmé par la bénéficiaire.

Exemple fictif, construit sur les règles réelles du moteur de Tallyno.

Douala. Une tontine de cinq ans. Deux heures de dispute pour une cotisation.

Lors d’une tontine à Douala, un doute sur une cotisation a suffi à créer près de deux heures de tension. Le groupe existait pourtant depuis cinq ans. Tout le monde voulait mieux suivre l’argent, mais personne ne voulait le confier à une nouvelle application.

On pense souvent qu’il faut garder l’argent pour pouvoir le gérer correctement. Pour Tallyno, j’ai choisi l’autre direction : le moteur ne touche pas à l’argent. Il enregistre les engagements, suit les cotisations et les remboursements, et garde une trace vérifiable de ce qui s’est passé.

C’est devenu la règle de Lehmora Labs : digitaliser les usages financiers du quotidien sans devenir l’intermédiaire qui détient l’argent. La confiance peut venir d’un système qui rend les règles et les mouvements vérifiables.

Freddy Tamwo

Fondateur et architecte système. Plus de six ans d’ingénierie full-stack.

Meragix(nouvel onglet)
4 packages open-source, plus de 500 téléchargements.
lehmora-infra
9 décisions d’architecture écrites avant de provisionner le moindre serveur. Lire le journal d’ingénierie
nui_flutter
Le design system Flutter commun aux applications mobiles du studio.
Stack
Flutter, NestJS, Nuxt, Next.js, PostgreSQL, Redis, Docker.

Dans une tontine, la dispute ne porte jamais sur le montant. Elle porte sur qui a payé, et quand.

C’est la seule question à laquelle notre code doit toujours savoir répondre.

Pourquoi nous ne gardons pas l’argent.

À Douala, l’objection n’était pas la technologie : personne ne voulait confier l’argent du groupe à une application. Tallyno part de là, et Payskool applique le même principe aux écoles. Le membre paie le bénéficiaire par Mobile Money ; la famille paie l’école sur son propre compte marchand. Nous tenons le registre : qui doit quoi, depuis quand, et qui a confirmé le règlement.

  • Aucune confiance à demander

    Pour utiliser Tallyno ou Payskool, un membre ou une famille n’a pas à nous remettre son argent. Il suffit de faire confiance au registre, qu’il peut vérifier.

  • Aucun fonds bloqué chez nous

    Avec Tallyno et Payskool, l’argent ne transite pas par nos comptes. Si le studio s’arrêtait, aucun groupe ni aucune école n’aurait de fonds à récupérer auprès de nous.

  • Une structure légère

    Pour ces deux produits, pas de trésorerie client à réconcilier ni de fonds en transit à surveiller. Leur coût reste celui d’un logiciel.

Tallyno et Payskool, le registre
Membre, famille
paiement direct, sans transiter par nous
Bénéficiaire, école
Registre Lehmoraqui doit quoi, depuis quand, qui a confirmé

Fonds détenus : aucun

Famsub, le séquestre
Abonné
paie
Famsubretient les fonds 30 jours
reversé au bout de 30 jours
Propriétaire

Fonds détenus : oui

Famsub est l’exception, et c’est un choix : pour le partage d’abonnements, l’abonné doit être protégé si le service n’est pas livré. Famsub retient donc la somme 30 jours avant de la reverser au propriétaire, avec un remboursement possible dans les 7 jours suivant l’adhésion. Le construire correctement a demandé une file de règlement, un grand livre à double entrée et une logique de remboursement : c’est précisément le coût que les autres produits évitent.

Les règles que Tallyno ne négocie pas.

Chaque règle répond à une dispute que tout membre de tontine reconnaîtra. Elle est appliquée par le code, pas par la mémoire du trésorier.

  • La dispute. On recommence le cycle, et il passe encore avant nous alors qu’il nous doit de l’argent ?

    La règle. Au renouvellement du cycle et à chaque réorganisation des tours, un membre endetté ne peut jamais être placé avant un membre à jour.

    assertDebtorsLast()
  • La dispute. Ma dette a disparu quand on a recommencé le cycle.

    La règle. Une dette n’est jamais supprimée. Elle suit son débiteur d’un cycle à l’autre jusqu’à ce qu’elle soit réglée ou soldée par décision du groupe.

    carriedToGroupId
  • La dispute. Elle a déjà touché le pot, pourquoi elle repasse ?

    La règle. Un membre ne reçoit le pot qu’une seule fois par cycle. C’est une contrainte d’unicité en base de données, pas une vérification à la main.

    UNIQUE(tontineGroupId, beneficiaryId)
  • La dispute. La pénalité a été comptée deux fois.

    La règle. Les pénalités de retard, une option à venir, sont recalculées de zéro chaque nuit, jamais incrémentées. Un traitement interrompu puis relancé ne double rien.

    penaltyAmount
  • La dispute. Quelqu’un a modifié l’ancien cycle.

    La règle. Un cycle terminé est immuable. Le renouveler crée un nouveau cycle, l’ancien reste exactement tel qu’il a été clos.

    status = COMPLETED
  • La dispute. Il manque quelques francs quelque part.

    La règle. Le pot vaut toujours cotisation × nombre de contributeurs, en entiers. Il n’existe aucune fraction de franc CFA dans le système.

    cycleAmount * contributorCount
  • La dispute. L’appli a planté au milieu du versement.

    La règle. Chaque changement d’état s’écrit en une seule transaction : le tour, la dépense et l’événement sont enregistrés ensemble, ou pas du tout.

    prisma.transaction()

Extrait des 17 invariants documentés du module tontine de Tallyno.

Tallyno d’abord.

Tallyno porte la thèse du studio : la tontine, sans que personne ne nous confie son argent. C’est là que se concentre l’effort.

Tallyno(nouvel onglet)

Tontines et dépenses de groupe.

En développementNestJS, Prisma, Flutter, Nuxt

  • Tours, cotisations et dettes suivis groupe par groupe.
  • Chaque paiement déclaré par le payeur, puis confirmé par le bénéficiaire ou le trésorier du groupe.
  • Les règles du groupe appliquées par le code, de l’ordre des tours au report des dettes.
Écran de Tallyno montrant le tour de tontine en cours.
Le tour en cours : qui a payé, qui doit encore.
Écran de Tallyno montrant les dettes des membres du groupe.
Les dettes du groupe : qui doit quoi, depuis quand.

Les autres produits du studio

ProduitCe qu’il faitDétient l’argent ?État
Famsub(nouvel onglet)Partage d’abonnements numériques entre particuliers, paiement en séquestre.Oui. Retenus 30 jours avant reversement, remboursables dans les 7 jours suivant l’adhésion.En staging
Payskool(nouvel onglet)Recouvrement des frais de scolarité, pour les écoles.Non. Les familles paient directement sur le compte marchand de l’école.En développement

Ce qu’ils partagent avec Tallyno : le design system Flutter nui_flutter, un socle backend NestJS et, une fois provisionnée, une infrastructure commune. Le détail est dans le journal d’ingénierie.

Où nous en sommes.

Mis à jour en novembre 2026

Aucun produit n’est encore en production. Famsub tourne en staging ; Tallyno et Payskool sont en développement.

Nous écrire

Vous investissez, construisez ou opérez dans la finance communautaire ou l’éducation en Afrique ? Écrivez-nous.