You aren't required to list or distribute your add-on through addons.mozilla.org (AMO); you can distribute it yourself. However, before distributing your add-on yourself, here are some things you should consider:
- 
AMO is a very popular distribution platform with millions of monthly visitors and installations. It's integrated into the Firefox Add-ons Manager, allowing for easy installation of add-ons published on AMO. 
- 
When an add-on is listed on AMO, Firefox automatically updates installed copies when a new version is listed on AMO. Firefox updates self-distributed add-ons like this: - If the extension includes an update_urlin its manifest, Firefox installs any updates with a higher version number available on that URL.
- If it doesn't include an update_url, Firefox checks AMO for a listed update. If a listed update with a higher version number is available, Firefox distributes that version to users who have installed the self-distributed file.
 Otherwise, you need to distribute updates for your users to install. 
- If the extension includes an 
For more information on how to submit an add-on for distribution on AMO or self-distribution, see Submitting an add-on.
Self-distribution options
When you choose to distribute an add-on yourself, users can install them using these methods:
- 
Web download in Firefox for desktop—make your extension available on a suitable web-accessible server. When a user downloads the signed add-on file, Firefox installs it. The web-accessible server must serve the signed add-on xpi file with Content-Type: application/x-xpinstallin the HTTP response headers.This method doesn't work in Firefox for Android. In this case, the add-on is downloaded, and the user needs to follow the instructions for installing add-on from file. 
- 
Installing add-on from file—enables a user to install an add-on using an .xpifile saved on their computer or Android device.
- 
Add-ons in an enterprise environment—this page discusses the use of signed compared to unsigned extensions, installation options, the Firefox settings affecting installation, and including add-ons with a custom Firefox install package. 
Web download
When distributing an add–on from your website, you have two options for making the signed add–on file available for download:
- 
Recommended approach: from a link on a webpage, like this: <div id="example-option-1" class="install-ok"> <a href="https://example.com/path/to/extension.xpi"> Install my add-on </a> </div>
- 
Using JavaScript, like this: <div id="example-option-2" class="install-ok"> <button> Install my add-on </button> <script> document.querySelector("#example-option-2 > button").onclick = () => { window.location = "https://example.com/path/to/extension.xpi"; }; </script> </div>If you take this approach, make sure that the browser detects your JavaScript code as handling user input. For example, it is called from inside a DOM click event. 
If the download link or triggering JavaScript is not on the top-level frame of the website, none of the frames between the top-level page and the frame containing the download or JavaScript can be third-party or cross-origin frames.
You may find references to using the InstallTrigger API to trigger a download from JavaScript. Don't use this API, it's not supported and was removed in Firefox 144 (see Bug 1776426).
Using either method, Firefox installs the signed add-on file when the user downloads it.
See submitting an add-on for details on how to download your signed add-on file.
Up Next
Publish
Installing self-distributed extensions
Publish
Add-ons for desktop apps
Publish