DEV Community

Weather Clock Dash
Weather Clock Dash

Posted on

How to Publish a Firefox Extension on AMO: What Affects Discoverability After Launch

Publishing a Firefox extension on the Mozilla Add-ons store (AMO) is straightforward, but there are non-obvious steps that determine how discoverable your extension will be after submission.

This is what I learned after publishing 11 extensions.


1. The submission itself

AMO accepts .xpi files (which are ZIP archives with .xpi extension). You can build one with web-ext:

npm install -g web-ext
web-ext build
Enter fullscreen mode Exit fullscreen mode

This creates web-ext-artifacts/your-extension-1.0.0.zip. Rename to .xpi or submit the ZIP — AMO accepts both.

Go to: https://addons.mozilla.org/en-US/developers/addon/submit/distribution


2. The review queue

AMO has two review channels:

Listed (Recommended): Extension appears in AMO search and browse. Reviewed by Mozilla volunteers. For simple extensions, review typically takes 1-7 days. For complex permissions, it can take longer.

Unlisted: No AMO presence. You distribute the .xpi directly. No queue. This is for internal tools or sideloaded extensions.

For public distribution, choose Listed.


3. Metadata that affects discoverability

AMO search and browse are the two main discovery surfaces. Here is what affects each:

Search: Extension name, summary, and description are indexed. Use specific, searchable language in the summary (140 chars). The summary appears in search results before the user clicks.

Browse by category: AMO has 25 categories. Choose the most specific one that fits. other is not indexed in category browse — it effectively removes your extension from browse-by-category.

Tags: AMO has 43 valid tags. Invalid tags are silently dropped. The valid list as of November 2026 includes: dark mode, privacy, search, social media, streaming, youtube, word counter, translate. Use the ones that genuinely describe your extension.

Homepage URL and Support URL: AMO shows these on the listing page. Backlinks to your documentation or blog posts are good for SEO and user trust. These fields accept {"en-US": "url"} format in the API.


4. The validation step

Before review, AMO runs automated validation. The common issues that fail validation:

  • Using eval() or new Function() — blocked by default CSP
  • Including node_modules with known CVEs — AMO checks against npm vulnerability databases
  • Remote code execution patterns — loading scripts from CDNs
  • Overly broad permissions — requesting permissions your extension does not use

The web-ext lint command runs most of these checks locally before submission.


5. Screenshots (previews)

The AMO listing can show up to 5 screenshots. Screenshots significantly improve click-through rate on search results.

Best practices:

  • 1280×800 or higher resolution
  • Show the extension actually working, not a marketing splash
  • The first screenshot is the one shown in search results

You can upload screenshots via the API (POST /api/v5/addons/addon/{id}/previews/) or through the developer dashboard.


6. The recommended badge

Mozilla's "Recommended Extensions" program badges a small number of extensions that meet their quality, security, and privacy bar. Applications are submitted to amo-featured@mozilla.org with a short pitch.

Getting recommended is not guaranteed, but for a well-built, privacy-respecting extension, it is worth applying. Recommended extensions appear prominently in search results and category pages.


I published all 11 extensions this way — see the full series for the extensions themselves.

Top comments (0)