Groselia
Des réseaux sociaux qui tournent tout seuls
Mon rôle
- Cofondateur
- Ingénierie
- Design produit et de marque
Description
Groselia gère les réseaux sociaux des startups tech en priorité, et aussi d'entreprises d'autres secteurs et d'autres tailles : stratégie, design, publication, réponses aux commentaires et reporting, sur chaque réseau, depuis une seule plateforme.
Équipe
Danilo ParmegianiCofondateur
Pedro CritchiCofondateur
Contexte
J'ai lancé Groselia avec Pedro, à deux. Il s'occupe du marketing, des ventes et des opérations ; j'ai conçu la marque et le produit, et construit la plateforme sur laquelle tout tourne, de la base de données à la dernière animation. Quand elle était en libre-service, plus de 200 personnes s'y sont inscrites, et aujourd'hui elle gère le contenu et les réseaux sociaux de nos clients. En juin 2026, nous avons levé un pre-seed de R$100k auprès de Link Vector, l'accélérateur de Link School of Business, où j'ai fait mes études, et deux mois après le pivot vers un service, Groselia génère plus de R$15 000 par mois.
Outils
- Codex
- Claude Code
- Figma
- Adobe tools
Stack
React
Next.js
TypeScript
Tailwind
Supabase
Frontier LLMs
Trigger.dev
Stripe
Vercel
Chronologie
- 2025–aujourd'hui
En chiffres
- R$180k+
- run rate annuel
- 200+
- comptes créés
- 350
- marques configurées
- 9,700+
- commits
- 520+
- pull requests
- 47
- edge functions
Défi
Construire a cessé d'être le goulot d'étranglement. Être vu l'est devenu.
L'IA a effondré le coût de fabrication d'un logiciel. Un fondateur sans formation d'ingénieur peut aujourd'hui sortir un produit en un week-end, et tout le monde aussi. Ce qui n'est pas devenu moins cher, c'est d'amener qui que ce soit à le remarquer. La distribution est une opération continue, pas une tâche : publier chaque jour, sur huit réseaux qui veulent chacun un format différent, répondre à chaque commentaire, et lire des chiffres que chaque app remonte différemment.
Les startups le paient de l'une de trois façons. Elles embauchent une équipe qu'elles ne peuvent pas encore s'offrir, elles assemblent une dizaine d'outils qui règlent chacun une petite partie, ou elles ne publient rien et le paient en croissance. Groselia existe pour être la quatrième option.
Comment on en est arrivé là
Groselia a changé de forme quatre fois avant de trouver ce qu'elle est. Chaque virage a gardé ce qui marchait et laissé tomber le reste.

Fin 2025 – févr. 2026
Argibee
Une plateforme de brand design par IA. Elle a commencé comme prototype fin 2025 et est devenue une vraie entreprise en février 2026. Elle n'a pas trouvé son marché, mais son moteur de brand kit est devenu la colonne vertébrale de tout ce qui a suivi.

Avr. 2026
Vidéo motion
Groselia a commencé avec des vidéos de lancement façon Apple, faites à partir de templates After Effects. J'ai validé toute la chaîne à la main, puis j'ai vu qu'elle ne pouvait pas passer à l'échelle au niveau de qualité voulu.

Juin 2026
Pre-seed de Link Vector
Nous avons rejoint la Startup School de Link School of Business, un programme de 100 jours pour fondateurs filmé comme une téléréalité (voir la saison). Il s'est terminé par un demo day où j'ai pitché Groselia sur scène, et par notre pre-seed de R$100k de Link Vector, l'accélérateur de Link School of Business, où j'ai fait mes études.
Août 2026
Le Lovable du marketing
Une conversation au lieu d'un formulaire : décrivez la campagne, et Groselia la planifie, la rédige et la publie. Un agent de chat avec des outils, pas une armée de bots.
Sept. 2026
Un social media manager
Les clients ne voulaient pas que l'IA crée leur contenu. Ils voulaient que leurs propres photos soient bien publiées et que leurs commentaires aient une réponse. Nous avons supprimé la génération et misé à fond sur la gestion des réseaux.

Aujourd'hui
Service as a software
Nous vendons le travail, pas l'outil. Notre équipe gère les réseaux sociaux de chaque client sur la plateforme, ce qui permet à une seule personne de faire ce qui demandait une agence.
Construit en public
Nous avons construit en public dès le départ. À l'époque d'Argibee, nous partagions l'aventure sur YouTube, du lancement de la liste d'attente d'Argibee à la première vidéo où nous montrions Groselia. La suite de l'histoire, vidéo après vidéo, est sur notre chaîne.
Marque
Je voulais une marque Groselia audacieuse : quelque chose qui fasse s'arrêter les gens pour regarder, sur le site, dans l'app et dans chaque post sur nos réseaux. Partout où on la croise, elle devait impressionner, susciter un peu d'admiration, et donner envie de faire appel à nous grâce à ce qu'on vient de voir. Surtout, elle devait être superbe aux yeux des startups tech, l'écosystème dont nous faisons partie et les premiers clients pour qui nous construisons.
J'ai conçu toute la marque avec le plugin Figma dans Codex : le logo, la typographie et son assemblage avec le symbole dans les bonnes proportions, l'imagerie, la bibliothèque d'icônes SVG, les styles de texte et une palette de couleurs organisée. Chaque décision allait sur un seul board, mesurée, pour pouvoir la comparer et en débattre.

Le symbole
Le symbole est venu en premier et il est resté. Trois pétales doux qui tournent autour d'un centre : il vient de la toute première version de l'entreprise, et le nouveau logo a été construit autour de lui plutôt que par-dessus. Sa géométrie a été copiée et mise à l'échelle, jamais redessinée.
Le logotype
Le logotype est en TT Commons Pro Bold, en minuscules, vectorisé pour s'afficher pareil partout. Avec son espacement naturel, il paraissait lâche à côté du symbole, alors je l'ai resserré à −4 % d'approche en décalant chaque lettre de 6,4 unités de plus vers la gauche à 160 px. Ça paraît minuscule ; le mot est passé de 564 à 520 unités de large et se lit désormais comme une seule forme.
Une grille en H
Tout est mesuré en H, la hauteur visible du logotype, sur une grille de H/10. Ainsi, le logo change d'échelle sans que personne ait à le régler à l'œil.
Pour le logo empilé, j'ai dessiné six options, trois tailles de symbole (1,50H, 1,75H, 2,00H) pour deux espacements (0,15H, 0,25H), et nous avons choisi B : un symbole de 1,75H, à 0,15H au-dessus du mot. Pour le logo horizontal, j'ai comparé des espacements de 0,20H à 0,35H et retenu un symbole de 1,10H avec un espacement de 0,35H.
Le logo empilé sur sa grille de construction. H est la hauteur du logotype ; la grille est en H/10.
Horizontal
Symbole 1,10H · espacement 0,35H
Empilé
Symbole 1,75H · espacement 0,15H
Symbole
Proportions d'origine, 0,93 : 1
Colour
The palette is fifteen colours, loud on purpose. But the logo only ever comes in four treatments: blue symbol with black text, blue with white, all black and all white. The other colours are grounds, never the symbol.
To prove that, I put the symbol and both lockups on twelve backgrounds, 24 studies each, and kept the ones where its silhouette survives. On blue grounds the symbol goes monochrome. Click a colour to copy it.
Typographie
TT Commons Pro fait tout : six graisses de Light à ExtraBold, une échelle de onze tailles de 12 à 96 px, et de vraies italiques. J'y ai migré les 688 calques de texte du fichier, pour que le brand book, l'app et le site parlent d'une seule voix.
Police principale
TT Commons
Pro
Icône de l'app
L'icône de l'app est le seul endroit où la marque passe en 3D : le symbole en porcelaine, en couches, éclairé par le haut et un peu brillant. Lors d'une mise à jour, j'ai réduit le symbole de 10 % à l'intérieur pour qu'il respire dans sa tuile. Elle a aussi son propre assemblage avec le logotype, la tuile à 1,5H.
Un monde d'objets 3D
Autour du logo vit toute une bande d'objets 3D : un cœur avec des yeux qui roulent, des bulles de chat, un hashtag, des étincelles. Ils sont la voix de la marque sur le site et dans nos posts, et ils ne tiennent jamais en place : ils flottent, et sur le site ils réagissent au curseur. Ceux-ci aussi : bousculez-les, ou tirez-en un et lâchez-le.








Neo doodles
Pour tout ce qui est en aplat, il y a Neo, notre jeu d'icônes : contours noirs épais, remplissages tirés de la palette et un seul reflet blanc. Sur le site, chacune commence comme une simple icône au trait dans une pastille blanche, et devient son doodle au survol, ses éléments arrivant un par un : le disque surgit, les barres tombent, le reflet se dessine. Ce sont les doodles et l'animation du site, copiés tels quels. Survolez-en un.
Produit
Dans Groselia, tout se fait en écrivant dans un seul chat. Vous écrivez ce qui doit sortir et quand, et il le programme, le publie, répond aux commentaires et vous dit ce qui a marché. Le travail arrive sous la forme d'un seul plan que le propriétaire approuve, au lieu d'une dizaine d'écrans à manipuler.
Une conversation, pas un tableau de bord
Groselia a commencé comme un formulaire : choisir un objectif, remplir les champs, obtenir une campagne. Personne n'a envie de remplir des formulaires sur sa propre entreprise, alors maintenant chaque marque a une seule conversation à la place.
Vous ouvrez votre marque et vous écrivez. Demandez quoi publier cette semaine, déposez des photos depuis votre téléphone, ou écrivez « réponds aux commentaires d'hier ». L'agent regarde avant de répondre : votre calendrier, ce qui a performé, la mémoire de la marque.
Quand il a besoin de quelque chose de vous, il pose une courte série de questions auxquelles vous répondez d'un geste. Puis il propose un seul plan : les posts avec leurs dates et heures, les réponses, les changements éventuels. Vous modifiez ce que vous voulez, vous approuvez, et vous regardez le calendrier se remplir.
La carte ici, c'est le vrai chat, reconstruit dans le navigateur à partir des propres tokens de l'app. Allez-y, essayez-le.
Conçu deux fois : pour les propriétaires, puis pour nous
Le premier public, c'était les propriétaires de petites entreprises qui gèrent eux-mêmes leurs réseaux sociaux. Ils ne pensent pas en campagnes, en tunnels ou en fréquences de publication ; ils pensent « qu'est-ce que je publie cette semaine ? ». Le plus dur était donc de cacher la machinerie : un onboarding en quatre questions, un brand kit rempli à partir d'un lien, un calendrier qu'on peut glisser-déposer, chaque écran en dix-sept langues et utilisable sur téléphone.
Puis nous avons compris que les clients ne voulaient piloter aucun outil, aussi simple soit-il. Ils voulaient que le travail soit fait. Alors nous sommes devenus les principaux utilisateurs. Une personne de notre équipe gère de nombreuses marques, et la même app a dû s'enrichir d'espaces de travail multi-marques, de cycles qui s'ouvrent par une réunion et se ferment par un rapport, d'une étape de validation sur chaque post et d'une seule boîte de réception pour tous les réseaux. Les clients se connectent toujours, mais l'app est désormais l'endroit où ils regardent le travail se faire, pas celui où ils le font.
novembre 2026
Conçu pour être lu par des agents
De plus en plus, le premier lecteur d'une marque ou d'une page web est une IA. Alors tout, dans Groselia, est écrit autant pour les agents que pour les humains. La mémoire d'une marque est un ensemble de simples documents Markdown, préférences, choses à faire et à éviter, faits sur la marque, que l'agent lit avant chaque réponse et modifie lui-même avec quatre outils, comme les assistants IA gèrent leur propre mémoire. Les gens ouvrent et modifient exactement les mêmes documents dans le brand kit.
Les Insights passent par un seul cœur partagé, lu à la fois par le tableau de bord et par l'agent, donc quand vous demandez « qu'est-ce qui marche ? », la réponse vient des chiffres que vous voyez. Et le site fait la même chose pour les assistants à qui les gens posent des questions sur nous : groselia.com sert un llms.txt, un llms-full.txt plus long et un fichier comparatif, tous générés à partir d'une seule source de faits dans le code, pour que ce qu'une IA dit de nos prix ou de notre sécurité ne puisse pas s'éloigner du site.
Engagement dans le temps
Par semaine, 30 derniers jours, par date de publication
Fonctionnalités clés
Un brand kit à partir d'un lien
Collez un site web et connectez vos comptes. Groselia analyse le site, lit vos anciens posts et remplit tout seul le logo, les couleurs, les polices, le ton et l'audience.
Une seule conversation
Un agent IA doté de 41 outils légende vos médias, choisit les horaires à partir de vos propres données d'engagement, lit les métriques et rédige les réponses, puis rassemble le tout dans un plan.
Un calendrier pour huit réseaux
Instagram, LinkedIn, TikTok, YouTube, X, Facebook, Threads et Reddit, chacun dans son format natif, avec les anciens posts importés pour que le calendrier ne soit jamais vide.
Chaque commentaire a sa réponse
Les commentaires et DM de tous les réseaux dans une seule boîte de réception, avec des réponses rédigées avec le ton de la marque et tout ce qui est sensible gardé pour un humain.
Des Insights en langage clair
Portée, vues et engagement sur tous les comptes, avec honnêteté sur ce que chaque plateforme remonte ou non, et une réponse à « qu'est-ce qui marche ? ».
Cycles et validations
Le travail avance par cycles. Chacun s'ouvre par une réunion, se ferme par un rapport que l'IA rédige à partir des chiffres, et chaque post peut attendre la validation du client.
Construit avec des agents IA
J'ai construit Groselia avec des agents IA comme équipe d'ingénierie. Codex et Claude Code écrivaient le code, chaque changement sur sa propre branche, pendant que je le concevais, relisais chaque pull request et décidais de ce qui partait en production.
Et j'ai dicté la plupart de mes prompts au lieu de les taper, avec Wispr Flow. Un bon prompt, c'est un brief long et détaillé, et parler me permettait d'en donner un aussi vite que je le pensais.
Codex
Agent de code
Claude Code
Agent de code

Wispr Flow
Dictée vocale
Site web
Le site, c'est là que la marque monte le son. Je l'ai conçu et développé en Next.js. Il existe en dix-sept langues, et il transmet la langue de chaque visiteur à l'app au moment de l'inscription.
Un hero avec lequel jouer
Le logo tourne pendant le chargement de la page, puis vient le hero : des objets 3D qui flottent, s'inclinent avec la souris et se font bousculer par le curseur, et une scène au scroll qui se termine sur « Made for you ».

La vraie app, reconstruite
« Inside your Groselia » montre la plateforme telle qu'elle est, reconstruite en code à partir des propres écrans de l'app, avec une marque de démo.

Un blog
Des notes sur la gestion des réseaux sociaux. Les articles sont de simples fichiers MDX, un par langue, sans CMS, et chacun a son propre flux et ses données structurées pour que les moteurs de recherche et les assistants IA le lisent correctement.

Un formulaire qui qualifie les leads
Chaque « Book a call » ouvre un court formulaire avant le calendrier : qui vous êtes, où vous publiez, ce dont vous avez besoin et votre budget. Chaque étape est enregistrée dans notre base de données au fur et à mesure, donc nous voyons même les réponses à moitié remplies, et un formulaire terminé prévient notre équipe sur Slack.

Responsive, toujours
Chaque page est aussi pensée pour le téléphone, pas juste rétrécie. Là où il n'y a pas de survol, les sections s'animent quand elles arrivent au milieu de l'écran.



Ingénierie
Architecture
J'ai construit la plateforme moi-même, avec l'IA comme binôme. L'app est en React et Vite, la landing en Next.js, et toutes les deux reposent sur un seul projet Supabase : Postgres avec sécurité au niveau des lignes, auth, realtime et storage, et 47 edge functions. Tout ce qui est lent ou planifié tourne sur Trigger.dev, les réseaux sociaux passent par une seule API de publication, et Stripe gère les abonnements, les cartes et le boleto brésilien.
Il y a aussi un serveur MCP et un plugin Codex, pour qu'on puisse utiliser Groselia depuis un agent IA : les mêmes marques, posts et brouillons, sous forme d'outils.
Où on l'utilise
Le cœur
En coulisses
L'app, le site web et le serveur MCP sont hébergés sur Vercel.
Survolez ou touchez un bloc pour voir ce qu'il fait et avec quoi il communique.
Le trajet d'un post
Le meilleur moyen de voir comment les pièces s'emboîtent, c'est de suivre un post, d'une phrase dans le chat jusqu'à ses chiffres dans Insights. Cliquez sur les étapes, ou laissez-les défiler.
App web
Le propriétaire demande
« Publie les photos de la récolte vendredi, sur Instagram et LinkedIn. » Le message part vers l'edge function de l'agent, qui renvoie sa réponse en streaming.
L'agent
L'agent tourne sur les meilleurs modèles du marché, d'Anthropic, d'OpenAI et d'autres fournisseurs, sous la forme d'une seule edge function en streaming avec une boucle d'outils. Le modèle dispose de 41 outils à lui, plus la recherche et la lecture web, jusqu'à huit étapes par tour. Le plus dur n'a jamais été le modèle. C'était de s'assurer que l'agent sache toujours ce qui est vrai à l'instant présent.
Alors à chaque tour, avant que le modèle ne voie le message, la fonction reconstruit le contexte depuis la base de données : la date et l'heure dans le fuseau du propriétaire, les documents de mémoire de la marque, le calendrier en direct, les plans ouverts, les documents importés et un résumé glissant des anciens messages. La partie stable du prompt est mise en cache pendant une heure ; celle-ci ne l'est jamais, pour qu'elle ne puisse pas devenir obsolète.
Deux règles ont façonné le reste. Tout ce qui est public ou irréversible passe par un plan que le propriétaire approuve, jamais directement. Et un post n'existe que si un outil l'a créé pendant ce tour, ce qui a mis fin à l'époque où l'agent décrivait un travail qu'il n'avait pas fait. Et l'agent n'est pas lié à un seul modèle : quand un modèle plus petit et moins cher est devenu assez bon, j'y ai passé le chat, pour réduire le coût par conversation.
Le contexte, reconstruit à chaque tour
Appels d'outils
Plan en attente de validation
Semaine de la récolte : 3 posts, 4 réponses
// Volatile block: time + memory + live calendar + active plans + rolling summary. // Rebuilt each turn (never cached) so the agent always sees current state. const volatileSystem = () => { const parts = [ nowBlock, renderMemories(memories), renderCalendar(calendar, todayISO), renderPlans(plans), ] if (documents.length) parts.push(renderDocuments(documents)) if (rollingSummary) parts.push(`STORY SO FAR (summary of earlier messages in THIS conversation):\n${rollingSummary}`) // … then a line for each of the brand's other conversations return parts.join('\n\n') }
Modèle de données
Environ 55 tables, en quelques groupes clairs. Un espace de travail a des membres et des marques ; tout le reste est rattaché à la marque, pour que la sécurité au niveau des lignes puisse répondre partout à une seule question : cette personne est-elle membre de cette marque ?
Qui
- Espaces de travail
- Membres
- Rôles par marque
- Profils
La marque
- Marques
- Couleurs, polices, logos
- Produits et personnes
- Documents de mémoire
- Documents de marque
Chat
- Conversations
- Messages
- Plans
- Éléments du plan
Le calendrier
- Posts
- Un par réseau
- Métriques des posts
- Commentaires des posts
Réseaux
- Comptes connectés
- Métriques quotidiennes des comptes
- Réglages des réseaux
Boîte de réception et cycles
- Fils de la boîte de réception
- Messages de la boîte de réception
- Brouillons de réponses
- Cycles
- Rapports de cycle
Tout ce qui est sous « Qui » porte un identifiant de marque ; la sécurité au niveau des lignes le vérifie à chaque lecture et à chaque écriture.
Fiabilité et sécurité
Groselia publie sur de vrais comptes, donc les pannes qui coûtent cher, c'est un post qui part deux fois, ou un post qui ne part jamais sans prévenir. L'essentiel de l'ingénierie est là.
1Approuver deux fois n'exécute qu'une fois
Le plan runner réserve le plan, puis chaque élément, avec une mise à jour conditionnelle, et chaque clé d'idempotence vient de l'identifiant de l'élément lui-même. Un double clic ou une nouvelle tentative rejoue au lieu de republier.
2Webhooks signés et rejoués
Chaque envoi de l'API de publication doit porter une signature HMAC valide. Les handlers sont idempotents parce qu'un même envoi peut arriver plusieurs fois, et une tâche rejoue tout événement manqué toutes les dix minutes.
3Refuser avant de mettre en file
Un seul fichier de règles partagé dit ce que chaque réseau accepte (Instagram exige un média, YouTube une vidéo, pas de mélange sur Facebook). Le planificateur le vérifie avant toute mise en file, et un post refusé revient en Échec, avec la raison, au lieu de rester sur le calendrier en Planifié.
4Accès vérifié à chaque appel
Sécurité au niveau des lignes dans Postgres, contrôle de rôle dans chaque edge function, et accès MCP via OAuth avec PKCE, limité par marque et par action, révocable depuis une seule page.
Pendant un temps, mon app locale et celle en ligne partageaient une seule base de données de production, et une migration passée avant un déploiement a un jour vidé la page Brand Kits en ligne. Depuis, le travail backend se fait d'abord sur une branche Supabase et fusionne en production avec le code qui en a besoin.
Qualité et workflow
Environ 1 000 cas de test répartis dans 140 fichiers couvrent l'app, le serveur MCP et les edge functions. Certains contrôles existent parce que quelque chose a cassé une fois : un test de parité fait échouer le build s'il manque une clé dans l'une des 17 langues, et les suites de base de données du MCP tournent sur des données synthétiques et font un rollback à la fin.
L'agent a ses propres evals. L'une pose à l'agent en production une série fixe de questions sur les performances d'une marque, chacune dans une nouvelle conversation, et vérifie qu'il a lu Insights sur la bonne période et que sa réponse donne les mêmes chiffres que la page Insights.
Une seule personne a livré plus de 520 pull requests en traitant les agents IA comme une équipe. Chaque changement a sa propre branche dans son propre worktree git, pour que Claude Code et Codex puissent travailler sur plusieurs choses à la fois sans se marcher dessus. Chacun lance ses tests et ses vérifications de types, ouvre une petite pull request, et rien n'est fusionné avant que je l'aie lu.
Défis techniques
Chacun ressemblait à un bug d'interface et s'est révélé plus profond : la forme d'un stream, un horodatage, ce qu'un réseau remonte vraiment, une horloge.
Rendre la génération vivante · Realtime
Générer un mois de posts, c'était un spinner, puis douze posts qui apparaissaient d'un coup. Ça paraissait lent, mais le modèle n'était pas le problème. La granularité, si.
J'ai fait passer la sortie du modèle en JSON Lines et je l'ai streamée, en insérant chaque post dès que sa ligne se fermait. Le calendrier s'abonne aux changements de Postgres via Supabase Realtime et affiche d'abord des emplacements vides, si bien que les posts s'écrivent un par un.
La même attente donne maintenant l'impression de regarder quelqu'un travailler.
Deux horodatages qui ne correspondaient jamais · Données
Supabase nous a prévenus que la base de données allait manquer d'IO disque. Les lectures allaient bien. Quelque chose réécrivait les mêmes lignes : 344k insertions pour stocker 83k messages.
La synchro de la boîte de réception comparait l'horodatage enregistré avec celui relu. Postgres le renvoyait en +00:00 et nous l'écrivions en Z, donc chaque conversation semblait modifiée et chaque passage la retéléchargeait. Comparer des instants plutôt que des chaînes a réglé le problème.
export function sameInstant(a: string | null | undefined, b: string | null | undefined): boolean {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a === b) return true;
const ta = Date.parse(a);
const tb = Date.parse(b);
return Number.isFinite(ta) && Number.isFinite(tb) && ta === tb;
}Insertions pour stocker 83k messages
344k→une par nouveau message
Conversations relues à chaque passage
toutes→celles qui ont changé
Les écritures inutiles se sont arrêtées, et des historiques de boîte de réception qui n'aboutissaient jamais se sont synchronisés pour la première fois.
Un zéro n'est pas toujours un zéro · Analytics
Notre fournisseur d'analytics renvoie le même format pour tous les réseaux et remplit avec 0 tout ce qu'un réseau ne remonte pas. Instagram « avait » zéro clic sur chaque post. Les graphiques mentaient poliment.
Un registre de métriques par plateforme, qui note ce que chaque réseau remonte vraiment, met le reste à null à l'ingestion, et laisse chaque graphique afficher, dégrader ou masquer une métrique en toute honnêteté.
Des Insights sur huit réseaux qui n'affichent jamais un chiffre que personne n'a mesuré.
Déconnecté par une horloge en avance · Auth
Mon cofondateur était déconnecté à l'instant même où il se connectait : quinze rafraîchissements de token par seconde, puis une limite de débit. Personne d'autre n'arrivait à le reproduire.
L'horloge de son ordinateur avait plus d'une heure d'avance, donc chaque token tout neuf semblait expiré. J'ai enveloppé le stockage de session pour recaler l'expiration sur l'horloge locale à chaque écriture de session.
Rafraîchissements de token par seconde
15→0
La connexion marche quelle que soit l'horloge de l'appareil, et la console signale quand elle est décalée.
À retenir
Le goût est le rempart
Quand l'IA rend la construction bon marché, tout le monde peut livrer, et la plupart des choses se ressemblent. Ce qui reste rare, c'est le jugement : savoir quoi laisser de côté, quel ressenti doit donner un écran, quand une animation est de trop. Pour une équipe de deux qui ne peut dépenser plus que personne, le goût est ce qui fait que Groselia a l'air et fonctionne comme quelque chose de bien plus grand, et c'est la seule partie que je ne confierais jamais à un modèle.
Vendre le résultat, pas l'outil
Personne ne voulait piloter un logiciel de marketing, aussi bon soit-il. Les gens voulaient être vus. Vendre le travail plutôt que l'app a rendu le produit plus important, pas moins : il est devenu le moteur qu'on fait tourner chaque jour, donc chaque aspérité a été corrigée.
Le contexte bat l'astuce
L'agent s'est amélioré quand il en savait plus, pas quand le prompt devenait plus malin. Lui donner à chaque tour le calendrier en direct, la mémoire et les plans ouverts, et le faire demander avant d'agir, a fait plus que n'importe quelle mise à niveau du modèle.
L'IA change la taille de l'équipe
Avec des agents qui écrivent l'essentiel du code en parallèle, mon travail est devenu : décider quoi construire, relire chaque changement et garder la barre haute. Une seule personne peut désormais faire tourner ce qui demandait une équipe, tant qu'elle reste l'éditeur.


