# 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. - Canonical HTML: https://growth.iangoh.com/growth-ideas/firefox-add-on-id-in-manifest-before-session-dependent-apis/ - Source: [extensionworkshop.com](https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/) - GrowthDex source hub: [Firefox Extension Workshop: Extensions and the add-on ID](/sources/firefox-extension-workshop-extensions-and-the-add-on-id-extensionworksho/) - Last checked: 2026-06-07T05:06:41.503Z - Rarity: rare - Budget: free - Channels: Product, Developer Experience, Retention - Stages: browser extensions, firefox add-ons, manifest architecture, identity stability ## Why this can grow 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. ## Ian's take From scaling consumer platforms across MENA and Southeast Asia, my default is to distrust growth work that only looks good in a slide. My bias is to treat this as a small market test first. Make the audience narrow, make the promise concrete, and let the first real response decide whether it deserves more work. I would run it small enough to learn quickly, then only scale the parts that real users repeat, save, reply to, or buy from. For this tactic, I would watch one clear growth signal before putting more time or budget behind it. ## Action plan 1. Define one narrow startup segment where firefox add-on id in manifest before session-dependent apis can create a measurable lift. 2. Turn the tactic into one offer, page, campaign, or workflow for the Product and Developer Experience channel. 3. Use the evidence from extensionworkshop.com to set the first version of the message, format, and audience. 4. Launch a small test for 7 to 14 days with one success metric: one measurable growth signal. 5. Review the result, keep the winning message, remove weak variants, and turn the learning into a repeatable growth playbook. ## Source-backed 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. ## Adjacent tactics in the same lane - [Firefox approved-version rollback within 24 hours](/growth-ideas/firefox-approved-version-rollback-within-24-hours/) - 1 shared channel, 2 shared stages - [AI response rating with follow-up context](/growth-ideas/ai-response-rating-with-follow-up-context/) - 2 shared channels - [Churned-account request alert view with Slack notifications](/growth-ideas/churned-account-request-alert-view-with-slack-notifications/) - 2 shared channels - [Customer page subscription for request lifecycle signals](/growth-ideas/customer-page-subscription-for-request-lifecycle-signals/) - 2 shared channels ## Read GrowthDex essays Browse the plain-English essay index at [GrowthDex Blog](/blog/). ## Related GrowthDex essays - [The extension page should survive the update, not just the install](/blog/the-extension-page-should-survive-the-update-not-just-the-install/) - brand trust, retention, SEO ## Advisory If you want help turning this into a working growth system, Ian Goh offers advisory at https://iangoh.com/advisory.