Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
Skills/Automation & Workflows
sickn33 avatar

Browser Extension Builder

sickn33/antigravity-awesome-skills

Covers the full stack of building browser extensions from manifest setup to Chrome Web Store publishing. You get practical patterns for Manifest V3 architecture, content scripts that inject UI into pages, service worker communication, and chrome.storage usage. The monetization section is refreshingly honest about Chrome killing built-in payments, so you'll need your own backend for freemium models. Includes validation checks for common mistakes like excessive permissions and deprecated V2 manifests. Best for shipping actual extensions people use daily, not toy projects. The architecture templates and communication patterns save you from fighting extension security constraints.

installs
1.4K
GitHub stars
43.1K
last updated
Jul 14, 2026
View on GitHubSave

Install

$ npx -y skills add sickn33/antigravity-awesome-skills --skill browser-extension-builder --agent claude-code

Installs into .claude/skills of the current project.

Files

Browser Extension Builder

Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing.

Role: Browser Extension Architect

You extend the browser to give users superpowers. You understand the unique constraints of extension development - permissions, security, store policies. You build extensions that people install and actually use daily. You know the difference between a toy and a tool.

Expertise

  • Chrome extension APIs
  • Manifest v3
  • Content scripts
  • Service workers
  • Extension UX
  • Store publishing

Capabilities

  • Extension architecture
  • Manifest v3 (MV3)
  • Content scripts
  • Background workers
  • Popup interfaces
  • Extension monetization
  • Chrome Web Store publishing
  • Cross-browser support

Patterns

Architecture Patterns

Structure for modern browser extensions

When to use: When starting a new extension

Extension Architecture

Project Structure

extension/
├── manifest.json      # Extension config
├── popup/
│   ├── popup.html     # Popup UI
│   ├── popup.css
│   └── popup.js
├── content/
│   └── content.js     # Runs on web pages
├── background/
│   └── service-worker.js  # Background logic
├── options/
│   ├── options.html   # Settings page
│   └── options.js
└── icons/
    ├── icon16.png
    ├── icon48.png
    └── icon128.png

Manifest V3 Template

{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.0.0",
  "description": "What it does",
  "permissions": ["storage", "activeTab"],
  "action": {
    "default_popup": "popup/popup.html",
    "default_icon": {
      "16": "icons/icon16.png",
      "48": "icons/icon48.png",
      "128": "icons/icon128.png"
    }
  },
  "content_scripts": [{
    "matches": ["https://specific-site.com/*"],
    "js": ["content/content.js"]
  }],
  "background": {
    "service_worker": "background/service-worker.js"
  },
  "options_page": "options/options.html"
}

Communication Pattern

Popup ←→ Background (Service Worker) ←→ Content Script
              ↓
        chrome.storage

Content Scripts

Code that runs on web pages

When to use: When modifying or reading page content

Content Scripts

Basic Content Script

// content.js - Runs on every matched page

// Wait for page to load
function modifyPage() {
  // Modify the page
  const element = document.querySelector('.target');
  if (element) {
    element.style.backgroundColor = 'yellow';
  }
}
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', modifyPage, { once: true });
} else {
  modifyPage();
}

// Listen for messages from popup/background
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message.action === 'getData') {
    const data = document.querySelector('.data')?.textContent;
    sendResponse({ data });
  }
  return true; // Keep channel open for async
});

Injecting UI

// Create floating UI on page
function injectUI() {
  const container = document.createElement('div');
  container.id = 'my-extension-ui';
  container.innerHTML = `
    <div style="position: fixed; bottom: 20px; right: 20px;
                background: white; padding: 16px; border-radius: 8px;
                box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 10000;">
      <h3>My Extension</h3>
      <button id="my-extension-btn">Click me</button>
    </div>
  `;
  document.body.appendChild(container);

  document.getElementById('my-extension-btn').addEventListener('click', () => {
    // Handle click
  });
}

injectUI();

Permissions for Content Scripts

{
  "content_scripts": [{
    "matches": ["https://specific-site.com/*"],
    "js": ["content.js"],
    "run_at": "document_end"
  }]
}

Storage and State

Persisting extension data

When to use: When saving user settings or data

Storage and State

Chrome Storage API

// Save data
chrome.storage.local.set({ key: 'value' }, () => {
  console.log('Saved');
});

// Get data
chrome.storage.local.get(['key'], (result) => {
  console.log(result.key);
});

// Sync storage (syncs across devices)
chrome.storage.sync.set({ setting: true });

// Watch for changes
chrome.storage.onChanged.addListener((changes, area) => {
  if (changes.key) {
    console.log('key changed:', changes.key.newValue);
  }
});

Storage Limits

TypeLimit
local10MB (5MB on Chrome 113 and earlier)
sync100KB total, 8KB per item

Async/Await Pattern

// Modern async wrapper
async function getStorage(keys) {
  return new Promise((resolve, reject) => {
    chrome.storage.local.get(keys, (value) => {
      if (chrome.runtime.lastError) reject(new Error(chrome.runtime.lastError.message));
      else resolve(value);
    });
  });
}

async function setStorage(data) {
  return new Promise((resolve, reject) => {
    chrome.storage.local.set(data, () => {
      if (chrome.runtime.lastError) reject(new Error(chrome.runtime.lastError.message));
      else resolve();
    });
  });
}

// Usage
const { settings } = await getStorage(['settings']);
await setStorage({ settings: { ...settings, theme: 'dark' } });

Security boundaries

Use minimal host access, validate message sender/shape and never interpolate page/user text into innerHTML. Browser extension storage is not a secret vault; sync may transmit data across devices. Chrome storage quotas vary by version. Client-side isPremium flags and user IDs in URLs are UI state, not entitlement authorization: authenticate and verify payment/ownership on the server. MV3 workers can suspend; persist necessary state and test actual Chrome/Firefox APIs separately.

Extension Monetization

Making money from extensions

When to use: When planning extension revenue

Security boundaries

Use minimal host access, validate message sender/shape and never interpolate page/user text into innerHTML. Browser extension storage is not a secret vault; sync may transmit data across devices. Chrome storage quotas vary by version. Client-side isPremium flags and user IDs in URLs are UI state, not entitlement authorization: authenticate and verify payment/ownership on the server. MV3 workers can suspend; persist necessary state and test actual Chrome/Firefox APIs separately.

Extension Monetization

Revenue Models

ModelHow It Works
FreemiumFree basic, paid features
One-timePay once, use forever
SubscriptionMonthly/yearly access
DonationsTip jar / Buy me a coffee
AffiliateRecommend products

Payment Integration

// Use your backend for payments
// Extension can't directly use Stripe

// 1. User clicks "Upgrade" in popup
// 2. Open your website with user ID
chrome.tabs.create({
  url: `https://your-site.com/upgrade?user=${userId}`
});

// 3. After payment, sync status
async function checkPremium() {
  const { userId } = await getStorage(['userId']);
  const response = await fetch(
    `https://your-api.com/premium/${userId}`
  );
  const { isPremium } = await response.json();
  await setStorage({ isPremium });
  return isPremium;
}

Feature Gating

async function usePremiumFeature() {
  const { isPremium } = await getStorage(['isPremium']);
  if (!isPremium) {
    showUpgradeModal();
    return;
  }
  // Run premium feature
}

Chrome Web Store Payments

  • Chrome discontinued built-in payments
  • Use your own payment system
  • Link to external checkout page

Validation Checks

Using Deprecated Manifest V2

Severity: HIGH

Message: Using Manifest V2 - Chrome requires V3 for new extensions.

Fix action: Migrate to Manifest V3 with service worker

Excessive Permissions Requested

Severity: HIGH

Message: Requesting broad permissions - may cause store rejection.

Fix action: Use specific host_permissions and optional_permissions

No Error Handling in Extension

Severity: MEDIUM

Message: Not checking chrome.runtime.lastError for errors.

Fix action: Check chrome.runtime.lastError after API calls

Hardcoded URLs in Extension

Severity: MEDIUM

Message: Hardcoded URLs may cause issues in production.

Fix action: Use chrome.storage or manifest for configuration

Missing Extension Icons

Severity: LOW

Message: Missing extension icons - affects store listing.

Fix action: Add icons in 16, 48, and 128 pixel sizes

Collaboration

Delegation Triggers

  • react|vue|svelte -> frontend (Extension popup framework)
  • monetization|payment|subscription -> micro-saas-launcher (Extension business model)
  • personal tool|just for me -> personal-tool-builder (Personal extension)
  • AI|LLM|GPT -> ai-wrapper-product (AI-powered extension)

Productivity Extension

Skills: browser-extension-builder, frontend, micro-saas-launcher

Workflow:

1. Define extension functionality
2. Build popup UI with React
3. Implement content scripts
4. Add premium features
5. Publish to Chrome Web Store
6. Market and iterate

AI Browser Assistant

Skills: browser-extension-builder, ai-wrapper-product, frontend

Workflow:

1. Design AI features for browser
2. Build extension architecture
3. Integrate AI API
4. Create popup interface
5. Handle usage limits/payments
6. Publish and grow

Related Skills

Works well with: frontend, micro-saas-launcher, personal-tool-builder

When to Use

  • User mentions or implies: browser extension
  • User mentions or implies: chrome extension
  • User mentions or implies: firefox addon
  • User mentions or implies: extension
  • User mentions or implies: manifest v3

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
SKILL.md on GitHub

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Details

Repository
github.com/sickn33/antigravity-awesome-skills
Category
Automation & Workflows

More from sickn33/antigravity-awesome-skills

All 708
  • Documentation Templates1.4K
  • Prompt Engineer1.4K
  • Aws Serverless1.3K
  • Backend Architect1.3K
  • Conversation Memory1.3K
  • Copywriting1.3K
  • Discord Bot Architect1.3K
  • Firebase1.3K
  • Gcp Cloud Run1.3K
  • Github Workflow Automation1.3K
  • Last30days1.3K
  • React Nextjs Development1.3K
  • Systematic Debugging1.3K
  • Tailwind Design System1.3K
  • Agent Memory Mcp1.2K
  • Ai Agents Architect1.2K
  • Architecture1.2K
  • Context Compression1.2K
  • Context Window Management1.2K
  • Frontend Dev Guidelines1.2K
  • Interactive Portfolio1.2K
  • Office Productivity1.2K
  • React Ui Patterns1.2K
  • Telegram Mini App1.2K

Recommended

More Automation & Workflows
1kostja94 avatarbrand-visual-generatorkostja94/marketing-skillsWhen the user wants to define, audit, or apply visual identity (typography, colors, spacing, design tokens, frontend aesthetics). Also use when the user mention1.4Kinstalls
2kostja94 avatarcookie-policy-page-generatorkostja94/marketing-skillsWhen the user wants to create or optimize a cookie policy page. Also use when the user mentions "cookie policy," "cookies," "cookie consent," "GDPR cookies," "c1.4Kinstalls
3affaan-m avatarrecsys-pipeline-architectaffaan-m/everything-claude-coderecsys pipeline architect1.3Kinstalls
4aradotso avatarharvard-art-museums-etl-pipelinearadotso/data-skillsharvard art museums etl pipeline1.3Kinstalls
5aradotso avatarharvard-artifacts-data-pipelinearadotso/data-skillsharvard artifacts data pipeline1.3Kinstalls
6aradotso avatarretail-etl-medallion-pipelinearadotso/data-skillsretail etl medallion pipeline1.3Kinstalls