Browser extensions · Updated

Publish a Firefox extension to AMO (review checklist for indie creators)

Submit your WebExtension to Firefox Add-ons (AMO): gecko ID, zip packaging, developer account, privacy policy, and Payhook-friendly monetization that avoids deprecated store billing.

#firefox#amo#publishing#webextensions#distribution


You tested your add-on with Load Temporary Add-on in about:debugging. To reach Firefox users worldwide, publish to Firefox Add-ons (AMO). Mozilla reviews security and quality; they do not provide a simple managed in-app purchase system for most indie extensions - plan on Stripe + Payhook for Pro revenue (Stripe setup guide).

Before you submit

ItemWhy it matters
Unique browser_specific_settings.gecko.idRequired for updates and signing
Minimal permissionsFaster review, fewer user scares
Privacy policy URLRequired if you collect or transmit user data
Screenshots + plain descriptionUsers and reviewers understand the add-on
Source zip (if requested)AMO may ask for readable source when code is minified

If you started from Firefox extension Manifest V3 starter, confirm the gecko block is present:

"browser_specific_settings": {
  "gecko": {
    "id": "your-addon@yourdomain.com",
    "strict_min_version": "109.0"
  }
}

Step 1 - Create a developer account

  1. Sign in at addons.mozilla.org/developers
  2. Accept the developer agreement
  3. Complete profile details (support email, homepage if you have one)

Step 2 - Package your add-on

Zip the extension root (the folder containing manifest.json), not the parent repo:

cd path/to/your-extension
zip -r ../my-addon.zip . -x "*.DS_Store" -x ".git/*"

Ask your AI to verify the zip structure if AMO rejects the upload - manifest.json must sit at the top level of the archive.

Step 3 - Submit for review

  1. In the AMO developer hub, choose Submit a New Add-on
  2. Upload the .zip
  3. Select On this site (listed on AMO) unless you have a specific reason for self-distribution
  4. Fill in name, summary, description, categories, and privacy policy link
  5. Upload screenshots (popup open, key feature in context)
  6. Answer the data collection questionnaire honestly

Review times vary. Respond quickly if moderators request changes.

Monetization on AMO

Mozilla does not replace your merchant relationship for typical Pro tiers:

  • Do use hosted checkout (Payhook opens Stripe on unlock.payhook.link)
  • Do gate Pro in the add-on with Payhook entitlement checks
  • Avoid embedding card fields in the popup
  • Avoid outdated advice about Chrome-style store IAP (deprecated on Chrome too)

Integration walkthrough: Monetize a browser extension without a payment backend.

After approval

  • Bump version in manifest.json for each release
  • Upload new zips through the developer dashboard
  • Keep support email and privacy policy current

Cross-browser shipping

Many creators publish AMO after Chrome Web Store. Prompt your coding agent:

Prepare this WebExtension for AMO submission: verify gecko id, trim permissions, add privacy policy notes, and produce a clean zip command.

Next steps