SharkRoast
Une plateforme SaaS où un requin IA livre des audits de sites web brutaux mais actionnables. Le backend Node.js orchestre un pool de scraping Puppeteer, la détection de 1500+ technologies et un pipeline dual-IA (Gemini 2.0 Flash pour la génération, Claude 3.5 Haiku pour le contrôle qualité). Le frontend React 19 offre une expérience théâtrale du scan au résultat. Le dashboard admin gère les roasts, newsletters et articles. Conformité RGPD avec chiffrement des données.
Le contexte
Les propriétaires de sites web peinent à obtenir un feedback UX honnête et actionnable. Les agences de design sont coûteuses, les outils d'audit automatisés génèrent des rapports techniques que personne ne lit. SharkRoast reformule l'audit en divertissement : un personnage de requin IA livre une critique acerbe mais techniquement fondée, suffisamment piquante pour motiver le changement. Deux produits : le Self-Roast (9,90 €, audit de son propre site) et le Shark Bomb (4,90 €, audit anonyme envoyé au site de quelqu'un d'autre).
L'architecture
Le projet se compose de trois applications indépendantes et d'un pipeline d'intelligence artificielle.
Le backend Node.js/Express est le cœur du système. 14 modèles Sequelize structurent les données dans PostgreSQL 16, tandis que Redis 7 et BullMQ 5 orchestrent les files de traitement. Un pool Puppeteer de 3 navigateurs concurrents gère le scraping, les captures d'écran (desktop, mobile, sections clés) et la génération de rapports PDF de 12 pages. Wappalyzer détecte plus de 1500 technologies sur chaque site audité. Un scanner vérifie l'exposition de 12 fichiers sensibles (.env, .git, wp-config, etc.). Les paiements passent par Stripe Checkout, les emails transactionnels par AWS SES, et les assets (screenshots, certificats, PDFs) sont stockés sur S3 avec distribution CloudFront. Le tout est conforme RGPD : chiffrement AES-256-GCM des emails, support DSAR et droit à l'oubli. 24 services spécialisés couvrent l'ensemble.
Le pipeline dual-IA est le différenciateur technique. Gemini 2.0 Flash génère le roast à partir des données scrapées : punchlines, verdict, scores par catégorie (design, UX, contenu, crédibilité) et recommandations prioritaires. Claude 3.5 Haiku effectue ensuite un contrôle qualité sur 100% des roasts générés. Trois modes selon le score : REWRITE en dessous de 60 (réécriture complète), POLISH entre 60 et 84 (amélioration ciblée), VALIDATE au-dessus de 85 (vérification factuelle). Cette architecture double-modèle garantit qu'aucun roast ne sort sans validation.
Le frontend React 19 est une SPA construite avec Vite 7, React Router 7 et du CSS vanilla. L'esthétique est sombre et incisive, fidèle au personnage du requin. 14 pages composent un parcours théâtral : soumission d'URL sur la page d'accueil, animation ECG pendant l'analyse pré-paiement, page de déblocage avec aperçu du hook et paiement Stripe, salle d'attente avec polling temps réel et phases progressives, puis la page résultat avec jauge de score animée, confettis, verdicts par catégorie, certificat téléchargeable et boutons de partage social. Le Shark Bomb permet les audits anonymes. Le Wall of Shame archive les roasts publics. La Gazette sert de blog éditorial. Google Analytics 4 est intégré avec Consent Mode v2.
Le dashboard admin est une application React 19 séparée avec TanStack Query 5, Tailwind CSS, Shadcn/ui et Recharts. Il offre un dashboard temps réel avec statistiques, santé système et visualisation des queues. Les admins peuvent retry les roasts échoués individuellement ou en batch, gérer les codes promo (CRUD complet), piloter la newsletter (abonnés, éditions, workflow test/approve/reject, readiness checks) et générer des articles IA pour la Gazette dans 6 catégories. Un module de modération permet le bannissement d'emails et l'exclusion de roasts des archives publiques.
Les défis techniques
Pipeline dual-IA avec contrôle qualité systématique. Enchaîner deux LLM différents de manière fiable pose des défis de coordination : Gemini génère, Claude valide, et chaque modèle a ses propres modes de défaillance. La logique de retry ajuste la température et les tokens à chaque tentative. Le circuit breaker protège le pipeline si Claude est indisponible sur les modes POLISH et VALIDATE — le roast passe sans modification plutôt que de bloquer. Le vrai défi reste l'équilibre entre humour et recommandations actionnables : la critique doit piquer suffisamment pour être mémorable, sans sacrifier la valeur technique.
Scraping robuste à grande échelle. Le pool Puppeteer gère 3 navigateurs Chromium concurrents avec leur cycle de vie complet : allocation, crash recovery, libération mémoire. Chaque site audité présente des défis uniques : SPAs qui chargent le contenu en JavaScript, murs d'authentification, protections anti-bot, popups de cookies à fermer avant les captures. Le plugin stealth contourne les détections basiques. L'investigation du DOM extrait les signaux UX (navigation, CTAs, SEO, accessibilité) depuis des architectures de sites radicalement différentes.
Expérience théâtrale temps réel. Plutôt qu'un spinner d'attente classique, le frontend construit une mise en scène : l'animation ECG pendant l'analyse pré-paiement, le polling avec phases progressives dans la salle d'attente (observation, analyse IA, rédaction du verdict), et le payoff avec la jauge de score animée, les confettis colorés selon le score et la génération du certificat. Le défi technique est la gestion du gap asynchrone entre le paiement Stripe et la livraison du roast, avec un pattern de polling adaptatif (3s → 6s → 10s) et des messages rotatifs par thème pour maintenir l'engagement.
L'échelle du projet
- Backend : 14 modèles Sequelize, 24 services spécialisés, BullMQ (queues roast + email), pool Puppeteer 3 navigateurs, 432+ tests Jest
- IA : pipeline dual Gemini 2.0 Flash + Claude 3.5 Haiku, scoring 21 signaux pondérés
- Frontend : 14 pages, esthétique sombre, animations théâtrales (ECG, jauge, confettis, certificat), partage multi-plateforme
- Admin : dashboard temps réel, Recharts, gestion newsletter, génération articles IA (6 catégories), modération de contenu
- Infrastructure : Stripe paiements, AWS SES/S3/CloudFront, Docker multi-stage, Sentry, RGPD (chiffrement AES-256-GCM, DSAR, RTBF)
L'état actuel
Les trois repositories (backend, frontend, admin) sont fonctionnels avec le parcours utilisateur complet, de la soumission d'URL à la livraison du roast avec rapport PDF. Le pipeline dual-IA, le pool de scraping Puppeteer et l'intégration Stripe sont opérationnels. Les prochaines étapes sont le déploiement en production et le lancement public de SharkRoast.io.


