50 000 DH refusés : pourquoi PhytoNote reste en GPL même quand Arganor Labs sort le chéquier
Un labo cosmétique de Casa m'a proposé 5000€/an pour une version fermée de PhytoNote. J'ai dit non, et voilà le compromis qu'on a trouvé à la place.
Le message LinkedIn est arrivé un mardi de novembre 2025, en fin d'après-midi. Je rentrais du labo, la batterie de mon téléphone à 7%, je l'ai lu dans le tram en revenant vers Agdal. « Bonjour Saliha, nous suivons votre travail sur PhytoNote. Auriez-vous trente minutes pour un appel cette semaine ? Nous avons un problème de CQ qui résiste depuis huit mois. »
L'expéditeur signait pour Arganor Labs, une petite société casablancaise de R&D cosmétique, spécialisée dans les huiles d'argan rectifiées et quelques huiles essentielles d'atlas (cèdre, romarin à camphre, thym à thymol). Je n'avais jamais entendu parler d'eux mais leur site était sérieux, certif ISO 22716, deux brevets déposés sur des procédés de désodorisation. J'ai répondu le soir même.
Le problème : 18% d'écart entre le matin et l'après-midi
L'appel s'est fait le jeudi suivant. La directrice qualité, Rabia, m'a exposé leur situation sans tourner autour. Ils contrôlent la teneur en polyphénols totaux (TPC, méthode Folin-Ciocalteu) sur chaque lot d'huile d'argan rectifiée qui sort de leur ligne. C'est le marqueur qu'ils utilisent pour grader leurs lots cosmétiques premium. Le problème : deux opérateurs, sur le même échantillon, à six heures d'intervalle, trouvaient des valeurs qui pouvaient varier de 18% en médiane. Sur les pires journées, ça montait à 27%. Inacceptable pour un client allemand qui exigeait un certificat d'analyse à chaque livraison.
Ils avaient déjà audité tout le matériel. Spectrophotomètre UV-1900 Shimadzu calibré le mois précédent, plaques transparentes Greiner neuves, réactif de Folin-Ciocalteu Sigma 2N changé toutes les six semaines, carbonate de sodium 7,5%, acide gallique standard préparé frais chaque jour. La courbe de calibration tenait son r² au-dessus de 0,998. Rien à dire sur l'instrument.
Mais quand j'ai demandé à voir leurs carnets de paillasse, j'ai compris en deux pages. Les opérateurs notaient leurs dilutions après la lecture spectro. Parfois trente minutes après. Quelqu'un écrivait « dilution 1/10 » à la main, mais son collègue de l'après-midi se souvenait avoir fait du 1/8 « parce que l'échantillon paraissait foncé ». Pas de timestamp, pas de photo du tube, pas de trace de qui avait préparé le blanc.
Quatre tablettes et un YAML
J'ai proposé un déploiement pilote sur trois semaines. Quatre tablettes Samsung Tab A8 (les leurs, ils les avaient déjà achetées pour un projet ERP avorté), une par poste de paillasse en CQ. PhytoNote installé en mode kiosque, avec un protocole YAML que j'ai écrit le week-end suivant : arganor_tpc_v2.yaml.
Le YAML imposait quelques contraintes que leur ancien workflow papier ne savait pas faire respecter. La dilution devait être saisie au moment de la pipeter, avec le volume exact en µL et la pipette utilisée. L'app refusait d'enregistrer la lecture spectro si l'absorbance du blanc dépassait 0,05. La courbe de calibration de la journée devait avoir un r² > 0,998 sinon la mesure était bloquée. Et chaque tube portait un QR code généré par PhytoNote, scanné avant chaque manipulation, qui horodatait l'opération sur la base SQLite locale de la tablette.
J'ai passé deux jours sur place, à Aïn Sebaâ, pour former les six techniciens et la responsable CQ. Hammam d'ambiance le premier jour, j'avais oublié à quel point novembre à Casa peut être humide. Le deuxième jour, j'ai laissé Rabia conduire la formation toute seule pendant que j'observais. C'est comme ça que j'évalue si une procédure va survivre à mon départ.
Trois semaines plus tard
Le 12 décembre, Rabia m'a envoyé l'export CSV consolidé. 342 mesures sur 47 lots distincts, contrôlés par les six opérateurs en rotation. L'écart inter-opérateur médian était tombé à 4,1%. Pour les lots premium, où ils dupliquent systématiquement les analyses, l'écart était à 2,8%. Le client allemand a validé sans remarque le certificat d'analyse de janvier.
Une semaine plus tard, le directeur général m'a recontactée. Il voulait un contrat de licence professionnelle annuel. 50 000 dirhams par an, soit environ 5 000 euros, pour une « version Arganor » de PhytoNote, avec mon support technique deux jours par trimestre. Pour une thésarde qui s'autofinance à mi-temps en donnant des TD à la fac, c'était une somme non négligeable. J'enseigne 96h par an en L2 chimie organique, ça me paie l'équivalent de 1 800 euros sur l'année académique. Le contrat Arganor aurait presque triplé mes revenus annexes.
Pourquoi j'ai dit non
J'ai mis quatre jours à répondre. Je voulais que ma décision soit honnête, pas une posture militante. La vérité est plus mesurée que ça.
PhytoNote est sous licence GPL-3.0 depuis sa première ligne de code, parce que je l'ai écrite pour résoudre mon chaos de doctorante, avec en tête les autres doctorants marocains qui galèrent comme moi avec des budgets de laboratoire dérisoires. Si j'avais accepté de produire une « version pro » fermée pour Arganor, j'aurais dû maintenir un fork privé, gérer leurs demandes spécifiques en priorité, et j'aurais doucement glissé vers un modèle où le développement public devient secondaire. J'ai vu ce scénario se jouer chez des amis qui ont lancé des outils open source. Trois ans plus tard, le repo public est gelé.
J'ai écrit à Rabia et au DG une proposition contre. Arganor pouvait financer le développement de fonctionnalités spécifiques au CQ industriel (export PDF certifié, signature électronique conforme à la loi 09-08, intégration LIMS via webhook) en finançant directement le repo public via un sponsor GitHub mensuel. Toutes les features développées resteraient GPL et donc utilisables par n'importe quelle autre boîte. En échange, je leur garantissais une priorité de roadmap sur les tickets qu'ils ouvriraient et deux jours de support par trimestre, facturés au tarif standard freelance marocain.
Ils ont accepté. C'est moins d'argent que les 50k DH initiaux, mais c'est aligné avec ce que je veux laisser derrière moi quand je soutiendrai ma thèse en 2027. Un outil qui sert d'autres labos que le mien, sans que je me retrouve à entretenir une dette technique privée que personne ne voit.
Est-ce que je regrette parfois ? Honnêtement, oui. Le mois où mon père a eu son problème cardiaque à Salé, les 50 000 DH d'un coup auraient été plus utiles qu'un sponsor étalé sur douze mois. La GPL ne paie pas les soins. Mais elle paie autre chose, plus diffus, que j'essaie encore d'articuler clairement.
Le code d'Arganor pour le CQ industriel est dans la branche cq-industrial du repo PhytoNote. Le YAML arganor_tpc_v2.yaml est dans le dossier protocols/, dépersonnalisé bien sûr (la société est citée avec son accord, mais aucune donnée client n'y figure). La discipline qu'Arganor a poussée — bornes dures, validation au moment du geste — vient en réalité d'un épisode antérieur avec un flacon de quercétine que j'avais laissé filer en thèse ; je l'ai raconté dans le récit du flacon ouvert depuis novembre.
J'aurais préféré pouvoir dire que la décision a été facile. Elle ne l'a pas été. Mais elle est prise, et la branche tourne.