A modern Chrome extension built with Vite, React, and TypeScript that extracts web pages as clean Markdown files and provides AI-powered SEO analysis using GPT and Gemini models.
- Markdown Extraction: Convert any web page to clean, structured Markdown using Turndown
- Save Functionality: Save extracted Markdown files with metadata
- AI-Powered SEO Analysis: Analyze content using OpenAI GPT or Google Gemini
- SEO Scoring: Get a comprehensive SEO score (0-100) for your content
- Improvement Suggestions: Receive detailed before/after recommendations
- Modern Stack: Built with Vite, React, TypeScript, and Tailwind CSS
- Modern UI: Clean, spacious design with Material Design icons
- Type Safety: Full TypeScript coverage with proper type definitions
- Vite - Fast build tool and dev server
- React 19 - UI framework
- TypeScript - Type safety
- Tailwind CSS v4 - Utility-first CSS framework
- Material Symbols - Google Material Icons
- Turndown - HTML to Markdown converter
- @google/generative-ai - Official Google Gemini SDK
- CRXJS - Vite plugin for Chrome extensions
- Node.js 20.19.0+ or 22.12.0+
- npm or yarn
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Package for Chrome Web Store deployment
npm run package- Build the extension:
npm run build - Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the
distfolder from the project root
remark-extension/
βββ src/
β βββ components/ # React components
β β βββ ExtractTab.tsx # Markdown extraction UI
β β βββ AnalyzeTab.tsx # SEO analysis UI
β β βββ SEOResults.tsx # SEO results display
β βββ content/ # Content script
β β βββ content.ts # Injected into web pages
β βββ background/ # Background service worker
β β βββ background.ts # Handles downloads
β βββ utils/ # Utility functions
β β βββ markdown-converter.ts # HTML to Markdown
β β βββ seo-analyzer.ts # AI SEO analysis
β βββ types/ # TypeScript type definitions
β β βββ extract.ts
β β βββ seo.ts
β β βββ index.ts
β βββ App.tsx # Main app component
β βββ main.tsx # React entry point
β βββ index.html # HTML entry point
β βββ index.css # Tailwind CSS styles
β βββ manifest.json # Extension manifest
βββ public/
β βββ icons/ # Extension icons (16, 48, 128)
βββ dist/ # Build output (generated)
βββ vite.config.ts # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ package.json
βββ manifest.json # Root manifest (used by build)
This project uses Tailwind CSS v4 for styling with a modern, Mac-app inspired design:
- Clean, spacious interface
- Professional typography hierarchy
- Material Design icons (Google Material Symbols)
- Smooth animations and transitions
- Custom color palette with primary purple/violet theme
The configuration is in tailwind.config.js and src/index.css.
- Get your API key from: https://platform.openai.com/api-keys
- Supported models: GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo
- Get your API key from: https://makersuite.google.com/app/apikey
- Supported models: Gemini 2.5 Pro, Gemini 2.5 Flash
Note: API keys are stored locally in your browser and never shared.
-
Install the Extension
- Install from Chrome Web Store
-
Pin the Extension (Recommended)
- Click the puzzle icon in Chrome toolbar
- Find "Re:Mark" and click the pin icon
- This makes the extension easily accessible
Step-by-Step Guide:
-
Navigate to any web page you want to extract
- Works on most websites (news articles, blog posts, documentation, etc.)
- Does not work on Chrome internal pages (chrome://, chrome-extension://)
-
Open the Extension
- Click the Re:Mark icon in your Chrome toolbar
- The extension popup will open
-
Extract Content
- You'll be on the "Extract" tab by default
- Click the "Extract as Markdown" button
- Wait a few seconds while the extension processes the page
- The extension will scroll through the page to capture all content
-
Preview the Results
- The extracted Markdown will appear in the preview area
- You can see the character count at the top right
- Review the content to ensure it captured what you need
-
Save the File
- Click "Save Markdown" to download the file
- The file will be named:
remark-[domain]-[timestamp].md - The file includes:
- Page title as heading
- Source URL
- Extraction date
- Clean Markdown content
Tips:
- The extension automatically removes ads, navigation, and unwanted elements
- Content structure (headings, lists, links) is preserved
- Works best on content-focused pages (articles, blog posts, documentation)
Prerequisites:
- You need an API key from either OpenAI or Google Gemini
- You must first extract markdown from a page (see above)
Step-by-Step Guide:
-
Extract Content First
- Follow the steps above to extract markdown from a page
- The extracted content is automatically saved for analysis
-
Switch to Analyze Tab
- Click the "Analyze" tab in the extension popup
-
Configure AI Settings
- Select Provider: Choose between OpenAI (GPT) or Google Gemini
- Choose Model:
- OpenAI: GPT-4o (recommended), GPT-4 Turbo, or GPT-3.5 Turbo
- Gemini: Gemini 2.5 Pro or Gemini 2.5 Flash
- Enter API Key: Paste your API key
- Your API key is stored locally and never shared
- Settings are saved automatically
-
Run Analysis
- Click "Analyze SEO" button
- Wait 10-30 seconds while AI analyzes your content
- A loading indicator will show progress
-
Review Results
- SEO Score: See your overall score (0-100)
- 80+: Excellent
- 60-79: Good
- Below 60: Needs improvement
- Improvements: Scroll through detailed recommendations
- Each improvement shows:
- Category (e.g., "Title and Meta Descriptions")
- Issue description
- Recommendation
- Before/After examples (when available)
- Each improvement shows:
- SEO Score: See your overall score (0-100)
Understanding SEO Analysis:
The AI analyzes your content across multiple categories:
- Title and Meta Descriptions: Optimization for search engines
- Heading Structure: Proper H1-H6 hierarchy
- Content Quality: Keyword usage and relevance
- Links: Internal and external link optimization
- Images: Alt text and image optimization
- Content Length: Appropriate length for topic
- Readability: Content structure and flow
- Mobile Considerations: Mobile-friendly content structure
Tips:
- Use GPT-4o or Gemini 2.5 Pro for more detailed analysis
- Use GPT-3.5 Turbo or Gemini 2.5 Flash for faster, cheaper analysis
- Review each improvement suggestion carefully
- Apply the "After" examples to improve your content
Example 1: Content Creator Workflow
- Write a blog post on your website
- Extract the post as Markdown using Re:Mark
- Analyze the SEO to identify improvements
- Update your content based on recommendations
- Re-analyze to see improved score
Example 2: Competitor Analysis
- Visit a competitor's blog post
- Extract their content as Markdown
- Analyze their SEO strategy
- Learn from their optimization techniques
Example 3: Documentation Extraction
- Navigate to technical documentation
- Extract as Markdown for offline reference
- Save multiple pages for a complete guide
- Optionally analyze SEO if it's public-facing content
-
For Extraction:
- Extract from content-focused pages for best results
- Review the preview before saving
- Use descriptive filenames (the extension auto-generates them)
-
For SEO Analysis:
- Extract content first, then analyze
- Use higher-tier models (GPT-4o, Gemini 2.5 Pro) for detailed analysis
- Review all improvement suggestions, not just the score
- Apply changes incrementally and re-analyze
-
API Key Management:
- Keep your API keys secure
- Monitor your API usage to avoid unexpected charges
- Use lower-tier models for testing, higher-tier for final analysis
- Make sure Node.js version matches requirements
- Delete
node_modulesanddistfolders, then runnpm installagain
- Check that
distfolder exists after building - Verify
manifest.jsonis valid - Check Chrome's extension error page for details
- Make sure you're on a regular website (not chrome:// pages)
- Try refreshing the page and extracting again
- Verify your API key is correct and has sufficient credits
- For OpenAI: Check your API key at https://platform.openai.com/api-keys
- For Gemini: Check your API key at https://makersuite.google.com/app/apikey
- Ensure the selected model is available for your API key
To deploy to the Chrome Web Store:
- Build and package:
This creates
npm run package
remark-extension.zipready for upload.
MIT License