Étude de cas
Gatto
UI Dev IA
Le guide des vraies bonnes adresses : conçu, codé et distribué seul, de bout en bout.
Cette UI est 100 % générée par l’IA, et c’est assumé : sur ce projet je valide une thèse produit, pas mon pixel-perfect. Mon craft UI se juge sur les autres projets.
- Rôle
- Fondateur solo : produit, data, IA, iOS, web, growth
- Période
- En cours · live sur l’App Store
- Contexte
- Paris & Lille, repositionnement voyageurs internationaux
- Outils & stack
- Swift / SwiftUI · Supabase (PostgreSQL) · n8n · Apify · GPT-5 · Claude Haiku · Next.js
Un incontournable validé par tous les guides et un piège à touristes que personne dans le métier ne recommande peuvent avoir exactement la même note sur Google Maps : 4,58. L’algorithme ne voit pas la différence. Un habitué, oui, mais il lui a fallu des années et des dizaines de repas ratés pour la sentir.
Gatto rend cette différence visible : la plateforme croise plus de 70 sources éditoriales indépendantes (Michelin, Gault&Millau, Le Fooding, Time Out, 50 Best et des dizaines d’autres) pour ne mettre en avant que les lieux sur lesquels les experts convergent sans s’être concertés.
Le problème
La note ne mesure pas la qualité, elle mesure la popularité, et la popularité s’achète. Les pièges à touristes déguisés en lieux populaires (forte note, beaucoup d’avis, zéro source professionnelle) et les recommandations sponsorisées non déclarées polluent exactement les outils avec lesquels on choisit où manger.
Les décisions
Lâcher les maquettes
La tension. J’ai commencé comme un designer commence : par vouloir des maquettes. Mais en solo, chaque semaine passée dans Figma est une semaine sans réponse à la seule question qui compte au début : est-ce que l’idée tient ?
Le choix. Une conception centrée sur l’IA : générer, tester, jeter. Tester mes idées et le produit lui-même avant d’y accorder trop de temps. Même logique côté système : pas de design system, un UI Kit. On est en mode build, un système serait une perte de temps.
Ce que ça a coûté. L’UI, justement. Celle de Gatto est générée avec l’IA et ça se voit : correcte, pas fantastique. C’est le marché que j’ai passé : tant que la thèse produit n’est pas prouvée, chaque heure de pixel-perfect est une heure volée à la validation. Le craft, je le garde pour les projets où il se paie ; ici, l’UI soignée viendra quand le produit aura mérité son designer.
Sourcer les experts, pas les foules
La tension. Constituer une base de vraies bonnes adresses, sans équipe éditoriale et sans reproduire le biais que je combats.
Les options. Curation manuelle (ne passe pas l’échelle) · une seule API type Google (reproduit pile le biais de popularité) · agréger des dizaines de sources éditoriales.
Le choix. Un pipeline source-first : chaque lieu passé au scanner de la SERP, d’où ont émergé 70+ sources éditoriales, et un Signal Index fondé sur la convergence : on compte les fournisseurs distincts qui recommandent un lieu, pas le volume brut de mentions.
Ce que ça a coûté. Passer chaque lieu au LLM coûte cher. Les lieux sous 4,3 sur Google ne sont pas scannés. J’assume l’ironie : je filtre par la note que je combats, et quelques pépites me passent sous le nez, au nom de la viabilité.
Deux pipelines IA sur n8n, sans backend maison
Le choix. Deux pipelines n8n self-hosted plutôt qu’un backend maison. Le premier ingère les lieux : la ville est maillée en hexagones H3 et balayée via Google Places. Le second scanne les mentions : chaque lieu est cherché dans la SERP Google, et chaque mention éditoriale qui remonte est classée par GPT-5 (ce lieu est-il vraiment recommandé, ou juste cité en passant ?), puis Claude Haiku génère tags et résumés. Deux modèles, deux jobs, chacun sur sa force. Et au-dessus de la base, deux systèmes multi-agents : l’un rédige l’éditorial à partir de nos données, l’autre part à la découverte de nouveaux lieux.
Ce qui a vraiment été dur. Pas le code : l’économie. Trier 70+ sources qui ne se valent pas. Optimiser chaque requête de scraping entre les API IA, Apify, Groq. Récupérer et maintenir à jour les données Google Places sans cramer le budget, parce que Google est précisément conçu pour l’empêcher. Et des itérations sans fin sur le prompt du scanner : la frontière entre « vraiment recommandé » et « juste cité en passant » tient dans quelques phrases d’instructions.
Ce que ça a coûté. Des soirées entières à chercher pourquoi rien ne se mettait à jour, et une discipline gardée depuis : se méfier du succès silencieux autant que de l’échec bruyant.
Ne jamais afficher le score
La tension. Un « 96/100 » est immédiatement lisible, satisfaisant, dopaminergique. C’est l’UI évidente. Et c’est un piège.
Le choix. Score interne uniquement. Un chiffre invite au gaming, sous-entend une fausse précision, et devient juridiquement radioactif accolé au nom d’un restaurant. À la place, des signaux qualitatifs : labels de tier (Incontournable, Hidden Gem), compteurs de convergence (« 12 critiques n’arrêtent pas d’en parler »), et des classements. Même discipline sur le langage : « popularité suspecte » plutôt que « piège à touristes ».
Ce que ça a coûté. Plus dur à communiquer, moins spectaculaire au premier regard, plus de travail de design pour rendre le qualitatif crédible.
Promouvoir une app que personne ne cherche
La tension. Construire l’app était presque la partie facile. La faire découvrir, c’est une autre histoire : une app de recommandations d’experts, ce n’est pas une requête que les gens tapent.
Ce qui a raté. J’ai cramé du budget en Apple Search Ads avant de comprendre le vrai problème : personne ne recherche ce que je voulais vendre. On tape « meilleur restaurant… », et cette requête appartient à Google Maps.
Le choix. Aller là où les gens découvrent vraiment des adresses : TikTok et Instagram. Le contenu social est généré depuis la base, avec des insights chiffrés du type « 37 % des lieux les mieux notés de Google à Paris ne sont cités par aucun guide » : la donnée fait la promotion du produit qui la contient.
Ce que ça a coûté. Un budget Apple Ads parti en frais de scolarité, et une leçon gravée : on n’achète pas une intention de recherche qui n’existe pas.
Premier bilan (2026). Environ 100 000 vues sur TikTok, 15 000 sur Instagram, 400 visiteurs récurrents par mois sur le site, 40 installations App Store. La notoriété se construit ; la conversion de la vue à l’install est le chantier ouvert, et je préfère l’écrire que le maquiller.
Ce que ça a produit
L’app iOS est live sur l’App Store : carte par tiers de qualité, fiches Signal Index détaillées, favoris. Le site gatto.city est pensé SEO-first : consultation publique et indexable, paywall réservé aux outils de planification.
- lieux scorés
- 5 700+
- mentions éditoriales
- 40 000+
- sources croisées
- 70+
Ce que je referais autrement
Verrouiller un positionnement net plus tôt. Le pivot voyageurs internationaux (« real places, picked by real experts ») est arrivé tard ; beaucoup de contenu pensé pour un public parisien, écrit puis mis au placard.
Livrer l’UX sans-chiffre dès le premier jour au lieu d’en débattre : c’était la bonne décision, prise trop lentement.
Suivre l’indexation dès le départ. Découvrir tard que seule une fraction des URLs est indexée, c’est une leçon de crawl budget qu’on paie cher.
Tuer ses features préférées quand elles ne servent à rien. La Share Extension, que je voyais comme le mécanisme de croissance clé, n’apportait rien : supprimée.