La meilleure critique de mon app d'humour est venue d'une table avec quatre amis et une tournée de boissons.
Quelqu'un a dit « raconte-nous une blague ». J'ai fait ce que tout le monde fait aujourd'hui : j'ai pris mon téléphone, ouvert je ne sais quoi, et commencé à faire défiler avec le pouce pendant que cinq conversations attendaient mon retour. C'est exactement le comportement que j'ai conçu Knora pour éviter, et ma première version a échoué au même test de la même façon.
Knora est une app iPhone gratuite, disponible sur l'App Store. Tu secoues le téléphone, un court sketch d'humour se joue d'un bout à l'autre avec une ou deux voix, et ensuite il n'y a plus rien à regarder. Pas de fil à faire défiler, pas de bibliothèque à parcourir, pas de compte à créer. L'interface entière est un geste. Elle est écrite pour un public 18+ en raison du langage et des sujets, ce qui est le but de la chose et aussi la raison pour laquelle elle n'est pas pour tout le monde à table.
J'y suis arrivé en retirant deux choses, et aucun des deux retraits n'a été confortable. Le premier a supprimé un format que les utilisateurs comprenaient déjà. Le second a supprimé la majeure partie de l'app.
La première chose que j'ai retirée, c'était le format de la blague
Knora a commencé comme une app de blagues « toc toc ». Elle marchait, en ce sens qu'elle produisait des blagues toc toc à la demande. Le problème, c'est que la forme était le plafond. Chaque blague toc toc a le même squelette — la mise en place, le « qui est là ? », la chute — et un modèle peut en écrire une bonne à l'intérieur de ce squelette sans jamais produire autre chose qu'une blague toc toc. La structure décidait à quel point l'app pouvait être drôle, et aucun travail de prompt n'allait battre la structure.
J'ai donc supprimé le format. Cela voulait dire supprimer ce que les gens reconnaissaient, ce qui est une chose étrange à faire à un produit qui venait tout juste de commencer à marcher.
Ce qui l'a remplacé, c'est un ensemble de méthodes comiques au lieu d'un modèle. Chaque sketch est construit à partir d'exactement une méthode, jamais une bouillie de plusieurs : une vraie règle absurde appliquée à quelque chose de minuscule, ou une histoire qui prend son temps puis bascule, ou quelque chose qui s'ouvre comme un compliment et n'en est pas un. Quatre sont actives. Le générateur en choisit une par sketch ; l'app ne choisit jamais.
Ce seul changement a fait plus pour la sortie que toutes les révisions de prompt qui l'ont précédé. Ce qui est la première leçon inconfortable : parfois le modèle n'a jamais été le goulot d'étranglement. C'était le contenant.
La deuxième chose que j'ai retirée, c'était l'interface
Retirer les écrans était plus difficile, parce que les écrans sont la façon dont tu montres aux utilisateurs que tu as construit quelque chose.
Une app ouverte à une table entre en concurrence avec la table. Chaque élément que j'ajoutais — une liste parcourable de voix, une bibliothèque des sketches que tu as aimés, un petit profil — rendait le téléphone plus intéressant que les gens qui tenaient les verres. Le brief a cessé d'être « fais une bonne app d'humour » pour devenir « un geste, puis le téléphone redescend ».
Il n'y a donc pas d'onboarding ni de connexion. Tu peux choisir une voix et une langue si ça t'importe, sinon un conteur aléatoire est tiré au premier lancement et tu n'ouvres jamais l'écran de réglages. Il n'y a aucune personnalisation à régler, ce qui veut dire qu'il n'y a aucune personnalisation à rater.
Une app d'humour uniquement vocale et sans micro demande quelques explications, donc clairement : elle n'écoute jamais. Il n'y a rien à dire à voix haute et rien à taper. Le sketch est écrit sur un serveur et envoyé au téléphone en audio ; le téléphone est un haut-parleur avec un détecteur de secousse attaché.
Ce que « pas d'UI » impose vraiment
Retirer l'interface était d'abord une décision de goût. Dans un monde où chaque app se dispute ton attention avec des notifications et des écrans chargés, je voulais un écran presque noir que l'on utilise en secouant. Mais cette décision entraîne un ensemble de contraintes d'ingénierie, et c'est celles-là qui valent la peine d'être détaillées.
Chaque secousse doit être instantanée. Si un sketch met six secondes à apparaître, la table est déjà passée à autre chose et le téléphone est de nouveau posé, écran vers le bas. Les sketches sont donc écrits et mis en voix à l'avance et servis depuis un catalogue. La génération en direct existe, mais comme filet de sécurité et réapprovisionnement — ce qui empêche le catalogue de devenir obsolète, pas le chemin sur lequel un utilisateur attend.
Pas de navigation, pas de choix. Sans liste où choisir, l'app n'envoie ni style ni choix de modèle. Le backend tire une méthode, écrit plusieurs brouillons et garde le meilleur avant qu'aucun audio ne soit produit. Le jugement est passé côté serveur parce qu'il n'y avait nulle part où le mettre à l'écran.
Un sketch est borné à environ soixante-quinze secondes. Ce n'est pas une limite technique ; c'est un budget de durée de tablée. Assez long pour raconter une histoire, assez court pour que personne à table n'attende la troisième minute de quelque chose qui ne marche pas.
Le client fait 2.5 MB. Presque rien n'est dans l'app, parce que presque rien ne devrait être dans l'app.
L'auteur est interchangeable. La production tourne sur Gemini 3.8 Flash, avec un autre modèle qui fait la modération et la sélection best-of-N. Changer d'auteur est un changement de configuration et aucune release de l'app, ce qui compte quand le modèle que tu utilises est remplacé tous les quelques mois.
On ne peut pas automatiser le goût
La chose la plus utile que j'ai apprise concerne l'évaluation, et elle se généralise bien au-delà de l'humour.
Quatre fois distinctes, les juges automatisés ont noté très haut des sorties que ma propre oreille jugeait pas drôles. Quatre fois. Un modèle peut te dire si la structure est intacte, si la méthode est reconnaissable, si la bascule arrive au bon endroit. Il ne peut pas te dire si la bascule atterrit. J'ai continué à essayer de le lui faire faire, et il continuait à se donner raison.
J'ai donc divisé le problème en deux. Les vérifications mécaniques gardent ce qui peut être vérifié mécaniquement : chiffres inventés, texte source récité, une indication de mise en scène qui fuit au milieu d'une réplique, tout ce qui frappe vers le bas une communauté, un corps, une maladie ou un deuil. L'oreille décide de tout le reste, et j'ai arrêté d'essayer de le déléguer.
Si tu publies des fonctionnalités d'IA, cette division, c'est l'essentiel du travail. Trouve la part de la qualité qui est réellement vérifiable et automatise-la sans t'excuser. Puis sois honnête — avec toi-même et avec quiconque demande — que le reste est du jugement, et qu'aucune grille d'évaluation ne fera qu'il n'en soit pas.
Le README de ce projet le dit sans détour, et je n'ai pas trouvé de meilleure formulation : ne fais jamais confiance à une validation automatique sur l'humour.
Ce à quoi j'ai renoncé exprès
Deux décisions qui ressemblent à des manques, et une qui en est un.
Je ne peux pas voir comment l'app est utilisée. Pas de SDK d'analytics, pas de compte, aucune donnée personnelle. La promesse de confidentialité est réelle, et le coût aussi : je ne sais pas quels sketches atterrissent, quelles voix sont passées, ni combien de personnes l'ouvrent deux fois. Je l'apprends quand quelqu'un me le dit.
Il n'y a pas de bouton de partage. C'est un pari, et je peux me tromper. Le partage est la façon dont une app d'humour se diffuse normalement, et je n'ai délibérément pas construit le mécanisme. Le pari, c'est que le téléphone se passe de main en main autour de la table plutôt que le lien ne se passe dans une conversation de groupe. Si ça s'avère faux, le correctif est évident et probablement en retard.
Il n'y a pas encore de notes. Elle est nouvelle. Ça, ce n'est pas un choix de design, c'est juste un manque de gens.
La partie inconfortable si tu travailles dans les médias
Mon métier, c'est les opérations média. Le nombre que j'ai passé une carrière à optimiser, c'est l'attention : temps passé sur le site, durée de session, fréquence de retour. Knora est faite pour que le téléphone ne retienne jamais l'attention de la table plus longtemps que le sketch. Une secousse, un sketch, puis le téléphone redescend — et tu peux le secouer à nouveau quand la table en veut un autre.
Mesuré comme je mesure les médias, c'est justement ça, l'étrange. Pas de fil qui te ramène, pas de session à prolonger, rien de conçu pour te retenir au-delà de la blague. Ce qu'il y a, en revanche, c'est une raison de le reprendre — un sketch assez drôle pour mériter la secousse suivante. Après ça, il te lâche.
Je ne pense pas que ça en fasse un meilleur produit que ceux qui courent après l'attention. Ça en fait un rappel utile que « plus d'engagement » est un choix sur ce que tu construis, pas une loi de la nature. Et ce choix est bien plus facile à faire dans un projet perso que personne ne paie.
Si tu as construit quelque chose conçu pour rendre l'attention plutôt que pour la retenir, j'aimerais vraiment savoir comment tu as raisonné à ce sujet — ce n'est pas un espace de design dans lequel je passe beaucoup de temps pendant la journée.
L'app est gratuite sur l'App Store, et les notes sur le design sont ici. Si tu l'essaies et qu'un sketch n'atterrit pas, dis-le-moi. Toute l'app est la blague.
À bientôt, Chandler