This extension is compatible with both Chrome and Firefox.
npm run build # Build to dist/
npm run typecheck # Verify TypeScript (no emit)
npm run test # Run full test suiteEach command builds the extension and creates a store-ready zip:
npm run package:chrome # → nostr-wot-chrome.zip
npm run package:firefox # → nostr-wot-firefox.zip| Step | Chrome | Firefox |
|---|---|---|
| Build | vite build |
vite build |
| Compile badge engine | TS → JS (Vite plugin) | TS → JS (Vite plugin) |
| Manifest patch | Strips browser_specific_settings |
Adds background.scripts |
| Zip | dist/ excluding .vite/ |
dist/ excluding .vite/ |
browser_specific_settingsis removed (Firefox-only key, Chrome logs a console warning if present)- Uses
background.service_workerfor the background script
browser_specific_settings.geckois kept (required for AMO: extension id, min version)background.scriptsis added alongsideservice_worker(Firefox 128-129 needsscripts; 130+ supports both)
- Go to https://chrome.google.com/webstore/devconsole
- Pay one-time $5 developer fee (if not already)
- Click "New Item" and upload
nostr-wot-chrome.zip - Fill in store listing details
- Submit for review (typically 1-3 days)
- Go to https://addons.mozilla.org/developers/
- Create account or log in
- Click "Submit a New Add-on"
- Choose distribution method:
- On this site — Listed publicly on AMO
- On your own — Self-distributed (signed but unlisted)
- Upload
nostr-wot-firefox.zip - AMO requires source code for review — upload a zip of the repo or link to the GitHub repo
- Fill in listing details
- Submit for review (typically 1-3 days)
- The
browser_specific_settings.gecko.idin manifest.json must be unique - Minimum Firefox version is 128 (for MV3 +
optional_host_permissionssupport) data_collection_permissions: { required: ["none"] }— no user data collected- Firefox will review source code manually
npm run build- Go to
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked" and select the
dist/folder
npm run build- Go to
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select
dist/manifest.json
Or use web-ext CLI:
npm install -g web-ext
web-ext run -s distBefore each release, update the version in both files:
manifest.json→"version": "x.y.z"package.json→"version": "x.y.z"
Both stores require version numbers to increase with each submission.