---
title: "AI Chat Export"
description: "A multi-browser extension that exports AI chatbot conversations to clean, structured Markdown - supporting 8 platforms, published on Chrome Web Store, with 20 releases delivered in 2 months."
locale: "en"
canonical: "https://portfolio.josedacosta.info/en/achievements/ai-chat-export"
source: "https://portfolio.josedacosta.info/en/achievements/ai-chat-export.md"
html_source: "https://portfolio.josedacosta.info/en/achievements/ai-chat-export"
author: "José DA COSTA"
date: "2026"
type: "achievement"
slug: "ai-chat-export"
tags: ["TypeScript", "React 19", "Vite", "Tailwind CSS 4", "Manifest V3", "Chrome Extensions API", "GitHub Actions"]
generated_at: "2026-04-23T15:44:04.565Z"
---

# AI Chat Export

A multi-browser extension that exports AI chatbot conversations to clean, structured Markdown - supporting 8 platforms, published on Chrome Web Store, with 20 releases delivered in 2 months.

**Date:** January 2026 - March 2026  
**Duration:** 2 months  
**Role:** Solo Developer & Product Owner  
**Technologies:** TypeScript, React 19, Vite, Tailwind CSS 4, Manifest V3, Chrome Extensions API, GitHub Actions

### Key Metrics

- Source Lines: **-** - TypeScript + React
- Platforms: **-** - AI chatbots supported
- Releases: **-** - In 2 months
- Commits: **-** - By a single contributor

## Project Overview

_What AI Chat Export is and why it exists_

- **AI Chat Export** is a **browser extension** (Chrome, Firefox, Edge, Brave, Opera) that exports conversations from the major AI chatbots to clean, well-structured Markdown. It addresses a concrète, widespread frustration: the native copy and export buttons built into ChatGPT, Gemini, Claude, and other AI interfaces systematically lose formatting, strip hyperlinks, omit citations, and offer no control over the exported content.
- The extension sits at the intersection of **developer productivity tools** and the **AI assistant ecosystem**. It targets the rapidly growing population of regular AI chatbot users - developers, researchers, students, technical writers - who need to archive, share, or reuse their conversations outside the chatbot interface. It is distributed through the **Chrome Web Store** and **GitHub Releases**.
- Full Markdown export with all links and formatting preserved
- One-click copy to clipboard or file download
- Multi-tab batch export with compare, merge, and fact-check
- YAML Front Matter compatible with Jekyll, Hugo, Obsidian
- Dynamic JavaScript link extraction and title fetching
- Split download for long conversations

## Objectives, Context & Risks

_The strategic vision behind the project_

### Obj Fidelity

Capture all content including dynamic links, citations, artifacts

### Obj Coverage

Major AI platforms on the market

### Obj Browser

Chrome, Firefox, Edge, Brave, Opera

### Obj Ux

Copy or download in a single action

### Obj Cicd

Full pipeline to Chrome Web Store

**Objectives Intro:** The project was driven by five clear, measurable goals:

**Obj Fidelity Label:** Export Fidelity

**Obj Fidelity Value:** 100%

**Obj Coverage Label:** Platform Coverage

**Obj Coverage Value:** 6+ chatbots

**Obj Browser Label:** Browser Support

**Obj Browser Value:** 5 browsers

**Obj Ux Label:** UX Goal

**Obj Ux Value:** 1 click

**Obj Cicd Label:** CI/CD

**Obj Cicd Value:** Automated

**Context Text:** This was a personal side-project initiated in January 2026 and developed entirely by José DA COSTA as sole developer. The repository is **private on GitHub** with a proprietary license and production code obfuscation. The market for AI chatbot export tools is emerging but already competitive, making speed-to-market and extraction quality the key differentiators.

**Stakes Text:** Beyond a technical exercise, the project carried real business stakes: **rapid market positioning** in an emerging niche, **Chrome Web Store compliance** (the extension was already rejected once for keyword stuffing), and **continuous maintenance** against constantly evolving chatbot DOM structures. The proprietary nature of the code also demanded robust intellectual property protection through multi-layer obfuscation.

**Risk1 Title:** DOM Changes by AI Platforms

**Risk1 Desc:** Chatbots frequently update their UI, breaking extractors. Mitigated by modular architecture and E2E tests.

**Risk2 Title:** Chrome Web Store Rejection

**Risk2 Desc:** Strict Google guidelines already caused one rejection. Documented compliance rules integrated into dev process.

**Risk3 Title:** Anti-Bot Protection (Cloudflare)

**Risk3 Desc:** ChatGPT uses aggressive bot protection, preventing automated Playwright tests on this platform.

**Risk4 Title:** Single Developer Dependency

**Risk4 Desc:** Sole maintainer creates bus factor risk. Mitigated by exhaustive documentation (23K-word CLAUDE.md).

**Risk5 Title:** Code Reverse Engineering

**Risk5 Desc:** Browser extensions expose source code. Protected with Terser + javascript-obfuscator multi-pass.

## Implementation Phases

_A chronological walkthrough of what was built and how_

- Phase 1
- Phase 2
- Phase 3
- Phase 4

**Phase1 Title:** Foundation

**Phase1 Period:** Jan 21-22, 2026

**Phase2 Title:** Platform Expansion

**Phase2 Period:** Jan 22-23, 2026

**Phase3 Title:** Feature Enrichment

**Phase3 Period:** February 2026

**Phase4 Title:** Advanced Features

**Phase4 Period:** March 2026

## Actors & Interactions

_The human and technical ecosystem around the project_

- As a solo project, AI Chat Export was developed entirely by **José DA COSTA**, who held all roles simultaneously: product owner, architect, developer, designer, DevOps engineer, and publisher. This required a disciplined approach to self-organization and decision-making.
- Starting from March 2026, **Claude Code (Claude Opus 4.6)** was introduced as a pair-programming assistant to accelerate development of advanced features. The collaboration was structured and deliberate - Claude Code operated within strict documented guidelines (23K-word CLAUDE.md) and all architectural decisions remained with José DA COSTA.

**Table Metric:** Metric

**Table Solo:** José DA COSTA (solo)

**Table Claude:** + Claude Code

**Table Total:** Total

**Table Commits:** Commits

**Table Lines Added:** Lines Added

**Table Lines Deleted:** Lines Deleted

**Table Total Lines:** Total Lines Modified

**Ext Deps Text:** The project interacted with several external services: **Chrome Web Store** (primary distribution), **GitHub Actions** (CI/CD), **GitHub Releases** (artifact hosting), **Firefox Add-ons (AMO)**, **Edge Add-ons**, and **Google Cloud Console** (OAuth for Chrome Web Store API). Each store has its own review process, policies, and submission constraints that needed to be navigated carefully.

## Results

_Measurable outcomes for myself and the product_

### Metric Releases

v1.0.0 to v1.13.1

### Metric Tests

14 test files

### Metric Deps

Lean production bundle

### Metric Active Platforms

+ 2 planned

### Metric Cicd

lint, type, test, security, build

### Metric Artifacts

Chrome, Firefox, Edge, Brave, Opera

- **Browser Extension Architecture (Manifest V3)** - mastered the full lifecycle: content scripts, background service workers, popup UI, Chrome Storage API, inter-process messaging, and cross-origin iframe handling
- **DOM Parsing at Scale** - developed robust extraction strategies using CSS selectors, MutationObserver, React Fiber tree traversal, and async content loading patterns
- **Multi-Store Publishing** - navigated the submission, review, and compliance processes of Chrome Web Store, Firefox AMO, and Edge Add-ons
- **Code Protection** - implemented production-grade obfuscation pipeline combining Terser (3-pass) and javascript-obfuscator with string array shuffling
- **AI-Assisted Development** - established a structured methodology for pair-programming with Claude Code, including 23K-word guidelines documentation that serves as both AI and human reference
- **Rapid Iteration** - validated that investing in CI/CD from day one enables sustainable velocity (20 releases in 2 months without friction)

**For Product:** For the Product

**Metric Releases:** Releases

**Metric Tests:** Test Assertions

**Metric Deps:** Dependencies (prod)

**Metric Active Platforms:** Active Platforms

**Metric Cicd:** CI/CD Jobs

**Metric Artifacts:** Artifacts/Release

**For Me:** For Me

**For Me Text:** This project significantly deepened expertise across several areas:

## What Came After

_The project beyond initial delivery_

**Immediate Text:** After the v1.13.1 release in March 2026, the extension was live on the Chrome Web Store and available for direct installation via GitHub Releases for Firefox, Edge, Brave, and Opera. The automated release pipeline ensured that every tagged version automatically built, packaged, and published to all supported channels.

**Maintenance Text:** AI chatbot interfaces are **inherently unstable targets**. ChatGPT, Gemini, Claude, and others regularly update their DOM structure without notice. Each update potentially breaks the corresponding extractor. The modular architecture (one extractor per platform, inheriting from AbstractExtractor) was explicitly designed to minimize the blast radius of such changes - when Gemini changes its DOM, only the Gemini extractor needs updating.

**Current Text:** The project is **in active production** on the Chrome Web Store and continues to be developed. Two additional platforms (Copilot, DeepSeek) are planned. The codebase remains under private license with full source code protection. The documentation infrastructure - including the 23K-word CLAUDE.md - serves as a blueprint for AI-assisted development workflows that has been reused across other projects.

## Critical Reflection

_Honest retrospective on decisions and lessons learned_

- **Automation pays from day one** - setting up CI/CD, conventional commits, and automated releases immediately enabled 20 frictionless releases in 2 months.
- **Documenting for AI is documenting for humans** - the 23K-word Claude Code guidelines double as comprehensive architectural documentation.
- **SaaS DOMs are unstable contracts** - building a product on third-party DOM parsing requires modular design and rapid adaptation capability.
- **IP protection requires deliberate effort** - in the browser extension ecosystem, code is inherently exposed. Obfuscation, minification, and no source maps are necessary but imperfect defenses.
