status: active
timestamp: 2026-06-20
tags: [services, extension-store, firefox, mozilla, distribution, primary]
Firefox Add-ons (AMO)
Mozilla add-on store — free unlimited submissions, no reg fee, CI via web-ext + AMO
Firefox Add-ons (AMO)
Role
Distribution channel for every browser extension in the
oriz-*-ext family on Firefox + Firefox-derivatives (LibreWolf,
Waterfox, Tor Browser via the Tor Project’s curated subset).
Every extension publishes here on the same release as
Chrome and Edge per
decisions/architecture/distribution-and-queues-locked.md.
Free tier
- Unlimited submissions, unlimited extensions per developer.
- No developer-registration fee.
- No review fee, no per-install fee, no recurring charge.
- AMO signs the
.xpiautomatically once review passes; signed versions can also be self-distributed off-store.
Card / subscription required?
NO. AMO requires only an email-verified Mozilla account. No payment method on file at any stage.
CI auto-publish
The packaged .zip is converted to .xpi, signed, and submitted
via Mozilla’s
web-ext CLI from inside
GitHub Actions:
- name: Build + submit to AMO
run: |
pnpm exec web-ext build --source-dir=dist
pnpm exec web-ext sign \
--api-key="$AMO_JWT_ISSUER" \
--api-secret="$AMO_JWT_SECRET" \
--channel=listed
env:
AMO_JWT_ISSUER: ${{ secrets.AMO_JWT_ISSUER }}
AMO_JWT_SECRET: ${{ secrets.AMO_JWT_SECRET }}
web-ext doubles as the cross-browser packaging tool — the same
build is also used for the Edge submission.
Credentials in Doppler →
GitHub Secrets.
Alternatives
- Chrome Web Store — sibling, $5 one-time.
- Microsoft Edge Add-ons — sibling, free.
- Self-distributed signed
.xpivia GitHub Releases — secondary channel for users who prefer side-loading.
Swap cost
Low — web-ext’s output is a standard .xpi. Switching off AMO
would only drop the sign step; everything else (manifest, build)
stays.
Why this is our pick
Firefox’s user base is small relative to Chromium but its users skew toward power-users who install extensions. Skipping AMO means losing the most engaged third of any extension’s potential audience. Free + no card means there’s no friction to adding it.
Cross-refs
- Browser-extension three-store + VS Code dual + PWA + queue decision
- Earlier cross-store publish decision (Batch 1)
- Repo naming suffixes (
-ext) - Chrome Web Store
- Microsoft Edge Add-ons
- Extension-store bucket index
- No card-on-file rule