Le printemps arrive et avec lui, cette sensation familière : je regarde mes bacs, ma serre improvisée contre ma fenêtre la plus ensoleillée, je sais vaguement que j’ai semé des poivrons la semaine dernière, je ne sais plus exactement lesquels, je ne me souviens plus si j’ai raté mon repiquage l’an passé sur la variété Yag Bibberi, et mes dizaines de notes sur des post-it sont perdues au fond d’un tiroir. Bref, un chaos « organisé » comme beaucoup de jardiniers amateurs connaissent.

L’idée m’est donc venue : et si je créais un outil de suivi potager sur mesure, exactement adapté à ma façon de jardiner, à mes bacs surélevés, à mes variétés ? Pas une application générique avec des fonctionnalités dont je n’ai pas besoin. Mon outil, pour mon jardin. N’étant pas développeuse mais me débrouillant en html/css/js et surtout en gestion de projet web, j’ai voulu de nouveau tester le vibecoding avec l’intelligence artificielle (cf. article précédent sur un comparateur de modèles agricoles).

Étape 1 : Poser les bases avec Gemini
Tout a commencé avec Gemini, le modèle d’IA de Google. Je lui ai décrit mon besoin en langage naturel (avec mes mots quoi) : je veux suivre mes semis, savoir quand repiquer, où j’ai planté quoi, pouvoir consulter des fiches semences, etc. J’ai demandé une application web simple, sans serveur, qui stocke tout localement.
Ce que Gemini m’a produit était déjà surprenant : une architecture cohérente en HTML, CSS et Javascript, avec deux fichiers JSON pour stocker les données (semences.json et journal.json). Un dictionnaire botanique contenant les règles propres à chaque plante (durée de vie d’une graine, nb de jours avant levée, repiquage, profondeur à laquelle semer, besoins en eau…), et un journal de bord dans lequel chaque action est consignée brute (« Le 12 mars, semé 4 graines de tomates en serre intérieure »).
La base fonctionnait. Elle était rustique, parfois incohérente dans ses interfaces, mais elle tenait debout. Ah oui important, je la voulais en mobile-first dark mode afin de pouvoir la consulter dans le jardin sur mon smartphone.



Étape 2 : Personnaliser avec Antigravity
Tous ces fichiers, je les ai mis sur un repository GitHub et activé GitHub Pages afin de pouvoir ouvrir l’outil sur mon navigateur (qu’il ait une URL). Mais il faut bien se dire qu’à chaque fois que je voulais améliorer quelque chose ou réparer un bug, je devais recopier le code généré par Gemini dans chaque fichier concerné, faire les commit, attendre les push, bref ça prend du temps (sans compter que l’IA, avec sa mémoire limitée, oublie des trucs, génère des incohérences, etc.). C’était très intéressant et utile pour concevoir la base, l’architecture, mais pour la faire évoluer je suis passée sur Antigravity.
Antigravity est ce qu’on appelle un outil de vibecoding : on lui donne des instructions en langage naturel et il modifie le code directement. Il a une bien meilleure mémoire puisqu’on travaille dans un « workspace » (un environnement de travail avec des plans d’implémentation, etc.). Il nécessite un peu de configuration au début pour le relier à GitHub afin qu’il puisse faire lui-même les commit et les push mais ça vaut le coup. J’ai pu affiner les fonctionnalités une par une, en décrivant des besoins très précis ancrés dans ma réalité de jardinière amateure. Par exemple :
La gestion spatiale des bacs
L’application sait où sont mes plantes en temps réel. Je crée juste une note via un module bien fait en page d’accueil quand je sème, repique, plante quelque part. L’appli relit tout l’historique du journal et calcule l’état actuel du bac. Si j’ai semé en serre intérieure puis planté au Bac A, elle affiche les plantules dans le bon emplacement et vide automatiquement la serre. Et si je vais faire une erreur d’association dans un bac précis (mettre des betteraves avec des tomates, par exemple), elle m’alerte avant que je fasse la bêtise (l’encart rouge Alerte compagnonnage).

L’agenda « générateur de missions »
Ce n’est pas un calendrier classique où on note des choses. C’est un moteur qui calcule. Dès qu’un semis est enregistré, il regarde les caractéristiques de la plante, estime la date de repiquage, projette la récolte, et affiche ces tâches au bon moment. J’ai même intégré une sorte de « Loi du Samedi » : si une tâche tombe en semaine, elle est automatiquement repoussée au week-end parce que perso j’ai pas du tout le temps de m’occuper du potager chaque jour.

S’il peut calculer tout ça, c’est aussi parce que le json des semences est très fourni et précis :
Pour CHAQUE semence, on retrouve :
- Identifiant système unique
- Nom commun de la plante
- Variété spécifique
- Famille botanique
- Provenance (où je l’ai achetée/collectée)
- Durée de conservation germinative
- Description courte
- Nombre de jours avant germination (levée)
- Nombre de jours avant repiquage
- Nombre de jours avant plantation
- Nombre de jours avant maturité globale
- Exposition solaire recommandée
- Besoin en arrosage
- Style de semis conseillé
- Profondeur exacte de semis
- Plage de température de levée
- Distance entre plants sur rang
- Distance minimale entre rangs
- DATE IDEALE DE SEMIS/PLANTATION en fonction de ma localisation en Vendée
- Liste des soins spécifiques (maladies, tuteurs)
- Liste des plantes compagnes
- Liste des plantes ennemies
- Intitulé d’une tâche d’entretien récurrente
- Délai cible de cette tâche
- Point de départ du délai (levée ou plantation)
- Fréquence de répétition de cette tâche
- Nombre d’apparitions de la tâche
- Texte conseil spécifique au semis local
- Historique annuel des récoltes menées

Et franchement, c’est pas trop bien présenté et clair ??? J’adore cette fiche semence :-).
Et la cerise sur le gâteau, c’est vraiment cette Date idéale de semis/plantation qui est a été calculée en fonction de notre climat local (parce que selon si on est à Toulouse à Brest, c’est quand même pas la même chose !).
L’architecture « low-tech » pensée à l’avance
Alors même si je dois avouer que c’est plus par flemme et pingrerie que je n’ai pas pris un vrai hébergement et créé une appli avec base de données PHP, j’aime beaucoup le fait que l’outil ne nécessite aucun serveur. Elle est 100% frontend et utilise le répertoire GitHub comme base de données silencieuse (via un jeton secret ou « token »). Toutes les données tiennent dans de simples fichiers html/css/json (et quelques .md d’information et quelques icônes .png), le tout pour un POIDS TOTAL de 800 Ko (moins qu’une photo hd sur votre PC) !!! C’est gratuit, résilient (j’ai le code en local sur le PC et dans le cloud sur GitHub, synchronisés), et les données m’appartiennent entièrement (même s’il n’y a aucune donnée personnelle ou sensible dessus).
Les autres fonctionnalités très cool
- L’encart météo : intégration d’une météo locale (API Météo France avec données de météo agricole) et alertes risque de gel, sécheresse
- L’Action Express : module tableau de bord avec menus déroulants simples pour dicter une action rapidement, sans passer par des formulaires longs
- Le widget « Levées sous surveillance » : suivi isolé des graines en cours de germination, séparé de l’agenda pour ne pas polluer la vue quotidienne

- Le bilan de fin de saison : onglet permettant de remonter le temps et de comparer les réussites et les échecs d’une saison à l’autre
- Le petit lexique de termes techniques : en poquet, buttage, etc.
- Le bilan des récoltes qui se calcule automatiquement à la fin de la saison (je crée une action via le module Action Express quand je récolte pour dire combien j’en récolte bien sûr)
- L’ajout possible de photos aux notes AVEC un petit moteur de compression des images car nos smartphones prennent des photos beaucoup trop grandes et lourdes pour l’usage que j’en fais ici
- L’installation en app native : l’outil s’installe comme une vraie application sur téléphone (via un fichier
manifest.json), sans passer par un store



Ce que l’IA rend vraiment possible
Soyons honnêtes sur ce que cette expérience démontre. L’IA m’a permis de créer un outil fonctionnel que je n’aurais jamais eu le temps ni les compétences de coder seule. La barrière d’entrée technique a clairement baissé, et le résultat final ressemble vraiment à ce que j’avais en tête. Mieux, j’ai parfois demandé à l’IA si elle pensait à des fonctionnalités utiles auxquelles je n’aurais pas pensé, c’est comme ça qu’est né l’encart météo agricole locale.
Ce qui m’a le plus frappé, c’est la capacité à traduire un cas d’usage précis en code. Décrire « je veux que l’application reporte les tâches au samedi » et obtenir une implémentation fonctionnelle en quelques minutes, c’est quelque chose d’assez vertigineux quand on vient d’un monde où ça aurait pris des heures de codage, de revue de code, de tests, de commentaire (oui parce que l’IA commente son code et aussi ses commit github et ça c’est très très cool).
Les limites, et elles sont importantes
Mais il faut être tout aussi honnête sur ce que ce type d’expérience n’est pas.
Mon outil potager est un outil personnel, pour un seul utilisateur, sur un seul jardin, avec des données que je contrôle entièrement. Il n’a pas besoin d’être sécurisé, d’être audité, de passer à l’échelle ou de gérer plusieurs comptes.
Si ce même outil devait devenir une application grand public, les difficultés techniques seraient d’un ordre de grandeur complètement différent. Il faudrait une vraie gestion des utilisateurs avec authentification sécurisée, une base de données partagée et robuste, une politique de confidentialité des données, une infrastructure capable d’encaisser de la charge, des tests de régression pour ne pas casser les fonctionnalités existantes à chaque mise à jour… Autant de sujets où le vibecoding atteint vite ses limites et où l’expertise d’un vrai développeur devient indispensable. Pour moi, l’IA codeuse reste donc un assistant de prototypage ou de création d’applis persos.
L’IA a rendu accessible la création d’outils personnalisés à des non-développeurs comme moi. C’est une révolution réelle pour les usages personnels et les petits prototypes. Elle ne remplace pas pour autant l’ingénierie logicielle quand les enjeux montent. Et ne nous leurrons pas, même comme ça, il faut avoir une bonne culture du code et une expérience minimale d’ingénierie projet web pour penser les fonctionnalités à partir du cas utilisateur. Antigravity est meilleur que Gemini pour voir « la vue d’ensemble » et préserver A PEU PRES la cohérence du projet (ça ne l’a pas empêché de faire des bourdes, des impensés genre les formulaires de modification dont les champs ne correspondent pas à la fiche modifiée).
Combien de temps ça prend ? La première version avec l’aide de Gemini m’a pris 6 à 7 heures, puis les améliorations avec Antigravity une dizaine d’heures max, soit moins de 20H de travail en tout.
Quoiqu’il en soit, mon outil de suivi potager fonctionne parfaitement pour ce qu’il est : une extension de ma mémoire qui m’évite de multiplier les post-its perdus, taillée sur mesure, qui fait exactement ce dont j’ai besoin et rien d’autre et que je peux faire évoluer si j’ai de nouvelles idées ou de nouveaux besoins. Et pour ça, je le trouve fascinant.
Bonus : Comme d’habitude, si vous voulez cloner mon repo github pour avoir tout le code et l’adapter à vos besoins ou en faire l’appli payante de demain, c’est par ici gratuitement (licence GNU General Public License v3.0): https://github.com/Frugman/potager

Laisser un commentaire