
AI Chat Export
Extension de navigateur multi-plateforme exportant les conversations de chatbots IA en Markdown structure - 8 plateformes supportées, publiée sur le Chrome Web Store, 20 releases livrées en 2 mois.
Lignes source
20,734
TypeScript + React
Plateformes
8
Chatbots IA supportes
Releases
20
En 2 mois
Commits
84
Par un seul contributeur
Présentation du projet
Ce qu'est AI Chat Export et pourquoi il existe
AI Chat Export est une extension de navigateur (Chrome, Firefox, Edge, Brave, Opera) qui exporté les conversations des principaux chatbots IA en Markdown propre et bien structuré. Elle répond à une frustration concrète et répandue : les boutons natifs de copie et d'export intégrés à ChatGPT, Gemini, Claude et autres interfaces IA perdent systématiquement le formatage, suppriment les hyperliens, omettent les citations et n'offrent aucun contrôle sur le contenu exporté.
L'extension se situe à l'intersection des outils de productivité pour développeurs et de l'écosystème des assistants IA. Elle cible la population en forte croissance d'utilisateurs réguliers de chatbots IA - développeurs, chercheurs, étudiants, redacteurs techniques - qui ont besoin d'archiver, partager ou reutiliser leurs conversations en dehors de l'interface du chatbot. Elle est distribuee via le Chrome Web Store et les GitHub Releases.
ChatGPT
Deep Research, Canvas, React Fiber
Gemini
Deep Research, iframes, charts
Claude
Artifacts, async extraction
Perplexity
Citations, docs, Python scripts
Grok
DeepSearch, citation expansion
Mistral
HTML to Markdown
Copilot
Planned
DeepSeek
Planned
Objectifs, contexte et risques
La vision stratégique du projet
Le projet était guide par cinq objectifs clairs et mesurables :
Fidelite d'export
100%
Capturer tout le contenu incluant liens dynamiques, citations, artefacts
Couverture
6+ chatbots
Principales plateformes IA du marche
Navigateurs
5 navigateurs
Chrome, Firefox, Edge, Brave, Opera
Objectif UX
1 clic
Copier ou télécharger en une seule action
CI/CD
Automatise
Pipeline complet jusqu'àu Chrome Web Store
Contexte
Il s'agissait d'un projet personnel initie en janvier 2026 et développé entièrement par Jose DA COSTA en tant que développeur unique. Le depot est prive sur GitHub avec une licence propriétaire et une obfuscation du code en production. Le marché des outils d'export pour chatbots IA est emergent mais deja concurrentiel, faisant de la rapidite de mise sur le marché et de la qualité d'extraction les principaux differenciateurs.
Enjeux
Au-dela de l'exercice technique, le projet comportait de veritables enjeux business : positionnement rapide sur le marche dans une niche emergente, conformité Chrome Web Store (l'extension a deja été rejetee une fois pour keyword stuffing), et maintenance continue face à des structures DOM de chatbots en constante évolution. La nature propriétaire du code exigeait egalement une protection robuste de la propriété intellectuelle via une obfuscation multi-couches.
Changements DOM des plateformes IA
Les chatbots mettent frequemment à jour leur interface, cassant les extracteurs. Attenue par l'architecture modulaire et les tests E2E.
Rejet du Chrome Web Store
Les guidelines strictes de Google ont deja cause un rejet. Regles de conformité documentées et intégrées au processus de développement.
Protection anti-bot (Cloudflare)
ChatGPT utilisé une protection anti-bot agressive, empechant les tests automatisés Playwright sur cette plateforme.
Dépendance à un seul développeur
Un seul mainteneur créé un risque de facteur bus. Attenue par une documentation exhaustive (CLAUDE.md de 23K mots).
Reverse engineering du code
Les extensions de navigateur exposent le code source. Protege avec Terser + javascript-obfuscator multi-passes.
Phases de réalisation
Un parcours chronologique de ce qui a été construit et comment
- Mise en place de l'architecture complète de l'extension Manifest V3 (popup, service worker, content scripts)
- Implémentation des extracteurs pour ChatGPT, Gemini et Grok avec le pattern Strategy et AbstractExtractor
- Construction du pipeline CI/CD complet avec GitHub Actions (5 jobs paralleles : lint, typécheck, test, sécurité, build)
- Configuration du pipeline de release automatisé avec release-it, conventional commits et SemVer
- Publication de la première version sur le Chrome Web Store des le premier jour
- Ajout de Terser + javascript-obfuscator pour la protection du code (minification en 3 passes)
- Ajout du support Grok avec expansion des liens DeepSearch et conversion HTML vers Markdown
- Ajout du support de la plateforme Claude avec extraction de contenu asynchrone
- Renforcement de la type safety dans tout le code (TypeScript strict, aucun any explicite)
- Amélioration de la gestion d'erreurs et de la récupération pour les structures DOM instables
- Implémentation du format de liens Markdown avec récupération automatique des titrès de pages
- Construction du système de téléchargement fractionne pour les conversations depassant les limités du navigateur
- Amélioration de l'extracteur Perplexity : citations groupees, docs generees, extraction de scripts Python
- Améliorations UI et corrections de bugs sur toutes les plateformes supportées
- Extraction des artefacts Claude avec chargement de contenu asynchrone
- Extraction de ChatGPT Canvas/Textdoc via l'API clipboard
- Export multi-onglets : sélection de plusieurs onglets pour export batch avec actions de comparaison, fusion et fact-checking
- Citations Deep Research resolues en liens Markdown inline (ChatGPT + Gemini)
- Open-and-paste pour le cross-referencing entre différents chatbots IA (pattern council prompt)
- Plugin hot-reload Vite pour une iteration de développement plus rapide
Acteurs et interactions
L'écosystème humain et technique autour du projet
En tant que projet solo, AI Chat Export a été développé entièrement par Jose DA COSTA, qui a cumulé tous les rôles simultanément : product owner, architecte, développeur, designer, ingenieur DevOps et éditeur. Cela a nécessité une approche disciplinee de l'auto-organisation et de la prise de décision.
A partir de mars 2026, Claude Code (Claude Opus 4.6) a été introduit comme assistant de pair-programming pour accelerer le développement des fonctionnalités avancees. La collaboration était structuree et delibérée - Claude Code operait dans le cadre de guidelines documentés strictes (CLAUDE.md de 23K mots) et toutes les décisions architecturales restaient du ressort de Jose DA COSTA.
| Métrique | Jose DA COSTA (solo) | + Claude Code | Total |
|---|---|---|---|
| Commits | 67 (79.8%) | 17 (20.2%) | 84 |
| Lignes ajoutees | 47,281 (89.2%) | 5,732 (10.8%) | 53,013 |
| Lignes supprimees | 4,367 (56.5%) | 3,357 (43.5%) | 7,724 |
| Total lignes modifiees | 51,648 (85.0%) | 9,089 (15.0%) | 60,737 |
Dépendances externes
Le projet a interagi avec plusieurs services externes : Chrome Web Store (distribution principale), GitHub Actions (CI/CD), GitHub Releases (hébergement des artefacts), Firefox Add-ons (AMO), Edge Add-ons et Google Cloud Console (OAuth pour l'API Chrome Web Store). Chaque store a ses propres processus de revue, politiques et contraintes de soumission qu'il a fallu naviguer avec soin.
Résultats
Résultats mesurables pour moi et pour le produit
Pour le produit
Releases
20
v1.0.0 a v1.13.1
Assertions de test
403
14 fichiers de tests
Dépendances (prod)
9
Bundle de production leger
Plateformes actives
6
+ 2 prévues
Jobs CI/CD
5 parallel
lint, type, test, sécurité, build
Artefacts/Release
7
Chrome, Firefox, Edge, Brave, Opera
Pour moi
Ce projet a considérablement approfondi mon expertise dans plusieurs domaines :
- Architecture d'extension de navigateur (Manifest V3) - maîtrise du cycle de vie complet : content scripts, background service workers, popup UI, Chrome Storage API, messaging inter-processus et gestion d'iframes cross-origin
- Parsing DOM a grande échelle - développement de stratégies d'extraction robustes utilisant selecteurs CSS, MutationObserver, traversee de l'arbre React Fiber et patterns de chargement de contenu asynchrone
- Publication multi-stores - navigation dans les processus de soumission, revue et conformité du Chrome Web Store, Firefox AMO et Edge Add-ons
- Protection du code - implémentation d'un pipeline d'obfuscation de niveau production combinant Terser (3 passes) et javascript-obfuscator avec melange de tableaux de chaines
- Développement assisté par IA - etablissement d'une méthodologie structuree pour le pair-programming avec Claude Code, incluant une documentation de guidelines de 23K mots servant à la fois de référence pour l'IA et pour les humains
- Iteration rapide - validation que l'investissement dans le CI/CD des le premier jour permet une velocite soutenue (20 releases en 2 mois sans friction)
Les lendemains du projet
Le projet au-dela de la livraison initiale
Suite immédiate
Après la release v1.13.1 en mars 2026, l'extension était disponible sur le Chrome Web Store et installable directement via GitHub Releases pour Firefox, Edge, Brave et Opera. Le pipeline de release automatisé garantissait que chaque version taguee était automatiquement construite, packagee et publiée sur tous les canaux supportes.
Maintenance continue
Les interfaces des chatbots IA sont des cibles inhéremment instables. ChatGPT, Gemini, Claude et les autres mettent régulièrement à jour leur structure DOM sans préavis. Chaque mise à jour peut potentiellement casser l'extracteur correspondant. L'architecture modulaire (un extracteur par plateforme, héritant d'AbstractExtractor) a été explicitement conçue pour minimiser le rayon d'impact de tels changements - quand Gemini modifie son DOM, seul l'extracteur Gemini doit être mis à jour.
État actuel
Le projet est en production active sur le Chrome Web Store et continue d'être développé. Deux plateformes supplémentaires (Copilot, DeepSeek) sont prévues. Le code reste sous licence propriétaire avec protection complète du code source. L'infrastructure de documentation - incluant le CLAUDE.md de 23K mots - sert de modèle pour les workflows de développement assisté par IA et a été reutilisée dans d'autres projets.
Regard critique
Rétrospective honnete sur les décisions et les leçons apprises
- Velocite exceptionnelle : 20 releases en 2 mois avec un produit fonctionnel sur le Chrome Web Store des le premier jour. L'investissement immédiat en CI/CD a massivement paye.
- Architecture modulaire : le pattern Strategy avec AbstractExtractor permet d'ajouter une nouvelle plateforme en ecrivant une seule classe d'extracteur sans toucher au code existant.
- Discipline de qualité de code : TypeScript strict mode, ESLint strictTypeChecked, conventional commits, 403 assertions de test, zero TODO/FIXME dans le code de production.
- Documentation orientée IA : le CLAUDE.md de 23K mots a inaugure une approche de documentation qui sert simultanément les développeurs humains et les assistants IA.
- Pipeline CI/CD complet : du commit au Chrome Web Store - entièrement automatise. Les rejets de store documentés et integres dans le processus.
- Fragilite DOM : l'extraction repose sur le parsing des DOM des chatbots, qui peuvent changer sans préavis. Un système de monitoring automatique des changements de structure reduirait le temps de reaction.
- Couverture E2E limitée : la protection Cloudflare de ChatGPT bloqué les navigateurs automatises, rendant les tests de bout en bout complets impossibles pour la plateforme la plus critique.
- Point de défaillance unique : malgre 23K mots de documentation, le projet depend d'un seul développeur pour toutes les décisions et la maintenance.
- Complexité de l'extracteur Gemini : 4 821 lignes reparties sur 12 fichiers gerant iframes, charts, Deep Research et carousel de sources. Ce module bénéficierait d'une decomposition supplémentaire.
- Moteur générique HTML-to-Markdown : plutôt que des extracteurs spécifiques par plateforme, un convertisseur HTML-to-Markdown configurable adapte aux contextes de chatbots pourrait réduire la duplication de code.
Leçons durables
- L'automatisation paye des le premier jour - la mise en place du CI/CD, des conventional commits et des releases automatisées a immédiatement permis 20 releases sans friction en 2 mois.
- Documenter pour l'IA, c'est documenter pour l'humain - les guidelines Claude Code de 23K mots servent egalement de documentation architecturale complete.
- Les DOM SaaS sont des contrats instables - baser un produit sur le parsing DOM de tiers nécessité une conception modulaire et une capacité d'adaptation rapide.
- La protection de la PI demande un effort delibere - dans l'écosystème des extensions de navigateur, le code est inhéremment expose. L'obfuscation, la minification et l'absence de source maps sont des defenses nécessaires mais imparfaites.
Architecture
Parcours associe
Experience professionnelle liee a cette realisation
Competences mobilisees
Competences techniques et humaines appliquees
Galerie d'images
Captures et visuels du projet








