Firefox add-on ID in manifest before session-dependent APIs
Set the Firefox add-on ID in `manifest.json` early if the extension depends on stable identity, because temporary IDs reset across sessions and break more than most teams expect.
Why this can grow a startup
A lot of extension teams discover the add-on ID too late, after sync, redirect, or native-messaging behavior starts acting haunted in development. Mozilla's guidance is useful because it turns the ID into an early architecture choice instead of a release footnote. When the ID is set from the start, the same extension identity can survive development, signing, and production updates. That makes debugging cleaner and keeps session-dependent flows from changing shape every time Firefox restarts.
Company example
Firefox Extension Workshop recommends defining an extension ID in `manifest.json` when development begins, requires a Manifest V3 extension ID before submission to AMO, and notes that temporary IDs change when Firefox restarts if no ID is defined.
Source and metric
Source: Firefox Extension Workshop: Extensions and the add-on ID
Manifest V3 add-ons must define an ID before AMO submission, and temporary Firefox IDs change after restart when no ID is set.
When to use it
Use this when Product, Developer Experience, Retention is relevant to browser extensions, firefox add-ons, manifest architecture and you can run a bounded test with a free budget.
When not to use it
Do not use it as a substitute for customer evidence, a clear owner, or a measurable stop condition. Local platform rules and market behavior still need checking.
Founder checklist
- Read Firefox Extension Workshop: Extensions and the add-on ID and identify what is directly supported.
- Choose one channel context: Product, Developer Experience, Retention.
- Define the test around Manifest V3 add-ons must define an ID before AMO submission, and temporary Firefox IDs change after restart when no ID is set..
- Set an owner, evidence window, and stop condition before launch.
Explore the context
Apply this with an operator
Connect activation, customer value, retention, and referral into one measurable loop.