← Retour aux projetsSaaS · SEO · IA

ForgR

ForgR crée et fait vivre des blogs SEO pour des agences et des indépendants, puis mesure si ces contenus sont cités par les IA génératives comme ChatGPT, Perplexity ou Claude. Un thème est déposé, l'IA rédige et publie, l'outil montre ce qui marche.

Stack technique

Ce que j'ai utilisé

Backend
KotlinSpring Boot 3.2Architecture DDDPostgreSQLFlyway
Frontend
Dashboard : Vite + Vue 3 + TypeScript + TailwindSite marketing : Nuxt 3 (SSG), i18n FR/EN
Paiement
Stripe
Hébergement des sites générés
Cloudflare R2 + WorkerApacheWordPress externe via API REST
Architecture

Comment c'est construit

Le dashboard (Vue) pilote une API Kotlin/Spring en architecture DDD (domaine, application, infrastructure, partagé). Chaque blog généré est publié selon trois modes selon le client : site statique sur Cloudflare R2 derrière un Worker, service direct par un Apache, ou publication dans un WordPress existant via API REST.

Intégrations IA

Ce que l'IA fait dans le produit

  • Un client Anthropic dédié pilote plusieurs services spécialisés : assistant de rédaction (« Léa »), suggestion d'idées de site, création automatisée de site, réécriture de titres pour le SEO, et « Gaïa » qui mesure si la marque du client est citée par les IA génératives (avec recherche web intégrée).
  • Le pipeline de génération de contenu a ses propres garde-fous : validation de la qualité des articles, contrôle de niche et de sujet, alignement avec la marque du client, avant publication.
  • Le coût de chaque appel IA est suivi individuellement (client, agent, montant) pour garder de la visibilité sur la rentabilité produit.
Qualité

Tests et vérifications

  • 186 fichiers de test côté backend
  • Tests end-to-end Playwright contre un environnement de préproduction, sans mock : pilotage de l'interface comme un humain, vérification de l'état réel (base de données, site publié, WordPress)
Déploiement & exploitation

Ce qui part en production

Déploiement blue-green sans coupure : deux instances tournent en parallèle, le trafic ne bascule qu'après un contrôle de santé, avec verrou de déploiement global et limites CPU/RAM pendant le build.

Le déploiement se fait par un script lancé en SSH depuis le poste de développement, pas par un orchestrateur cloud tiers.

Sécurité

Ce qui protège le produit

  • Authentification OAuth Google pour l'intégration Search Console
  • Limitation de débit (rate limiting) sur les points d'entrée sensibles
  • Garde-fous anti-hallucination sur tout le pipeline de génération de contenu
Ce qui a cassé, ce que j'ai appris

Le premier modèle utilisé pour générer les articles cassait environ un tiers des réponses en JSON invalide. Plutôt que d'empiler des validations et des retries après coup, j'ai changé de modèle pour un qui supporte nativement les sorties structurées (structured outputs) — le problème a disparu à la source. Le suivi du coût IA par client et par agent est venu du même réflexe : préférer une contrainte au niveau de l'architecture à une pile de correctifs.