0Pricing
Browser Extensions Development (Chrome & Edge) · Lesson

Packaging and Publishing for Multiple Stores

Learn how to bundle a single extension codebase and submit it to both the Chrome Web Store and the Microsoft Edge Add-ons store.

Packaging and Publishing for Multiple Stores is a free Browser Extensions Development (Chrome & Edge) lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Browser Extensions Development (Chrome & Edge) learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Why Publish to Multiple Stores

Once your extension works across browsers, the next step is distribution. The two largest Chromium stores are the Chrome Web Store and the Microsoft Edge Add-ons store.

Publishing to both maximizes reach with almost no extra code, since both consume the same Manifest V3 package.

One Codebase, Two Packages

You usually ship the same ZIP to both stores. Small differences (like minimum versions or store-specific keys) can be handled with a build script.

  • Keep one source tree
  • Produce store-specific builds via scripts
  • Avoid maintaining forks
{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.4.0",
  "minimum_chrome_version": "102"
}

Building the ZIP

Stores accept a ZIP archive of your extension root (the folder containing manifest.json). Never zip the parent folder.

A simple npm script keeps this repeatable.

node -e "const cp=require('child_process'); cp.execSync('cd dist && zip -r ../extension.zip .')"
console.log('Created extension.zip');

Version Numbers Matter

Both stores require the version in the manifest to be strictly higher than the currently published version for each update.

Use semantic-like dotted numbers: 1.4.0 then 1.4.1.

const fs = require('fs');
const m = JSON.parse(fs.readFileSync('manifest.json', 'utf8'));
const parts = m.version.split('.').map(Number);
parts[parts.length - 1] += 1;
m.version = parts.join('.');
fs.writeFileSync('manifest.json', JSON.stringify(m, null, 2));
console.log('Bumped to', m.version);

Chrome Web Store Submission

In the Chrome Developer Dashboard you upload the ZIP, fill listing details (description, screenshots, category) and submit for review.

  • One-time developer registration fee
  • Automated plus manual review
  • Permission justifications required

Edge Add-ons Submission

The Partner Center hosts Edge submissions. Registration is free. You upload the same ZIP and provide listing metadata.

Edge review tends to focus on policy compliance and accurate descriptions.

Store Listing Assets

Both stores need marketing assets:

  • Icon (128x128)
  • Screenshots (1280x800 recommended)
  • A small and large promo tile (optional)
  • Short and detailed descriptions

Prepare these once and reuse across stores.

Automating with the CWS API

The Chrome Web Store API lets you upload and publish from CI. You authenticate with OAuth and call the REST endpoints.

// Pseudocode using fetch in a CI script
const token = await getAccessToken();
await fetch('https://www.googleapis.com/upload/chromewebstore/v1.1/items/' + itemId, {
  method: 'PUT',
  headers: { Authorization: 'Bearer ' + token, 'x-goog-api-version': '2' },
  body: zipBuffer
});
console.log('Uploaded to CWS');

Automating Edge Submissions

Edge offers the Add-ons API for CI uploads. You obtain an access token, upload the package, then trigger publishing.

This mirrors the Chrome flow, so a shared deploy script can target both.

// Upload draft, then publish
await fetch(baseUrl + '/products/' + productId + '/submissions/draft/package', {
  method: 'POST',
  headers: { Authorization: 'Bearer ' + token },
  body: zipBuffer
});
console.log('Edge draft uploaded');

Handling Review Rejections

Common rejection causes:

  • Requesting permissions you do not use
  • Vague privacy disclosures
  • Mismatched description and behavior

Request only the minimum permissions and document why each is needed.

Keeping Both Stores in Sync

To avoid drift, publish from a single tagged release. Tag the commit, build the ZIP, then push to both stores in the same pipeline run.

This guarantees identical behavior for all your users.

Quick Check

Test your understanding of multi-store publishing.

Recap

You learned to package one codebase and ship it to both Chromium stores:

  • Zip the extension root, never the parent folder
  • Bump the version on every update
  • Reuse listing assets across stores
  • Automate uploads with the CWS and Edge APIs
  • Request minimal permissions to ease review

Frequently asked questions

Is the “Packaging and Publishing for Multiple Stores” lesson free?

Yes — the full text of “Packaging and Publishing for Multiple Stores” is free to read here on the web, and the Browser Extensions Development (Chrome & Edge) course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Browser Extensions Development (Chrome & Edge) course, upgrade to CoddyKit PRO.

What will I learn in “Packaging and Publishing for Multiple Stores”?

Learn how to bundle a single extension codebase and submit it to both the Chrome Web Store and the Microsoft Edge Add-ons store. You practise Browser Extensions Development (Chrome & Edge) with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Browser Extensions Development (Chrome & Edge)?

No prior experience is required. Browser Extensions Development (Chrome & Edge) on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Packaging and Publishing for Multiple Stores” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Browser Extensions Development (Chrome & Edge) lesson?

Yes. Every Browser Extensions Development (Chrome & Edge) lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Cross-Browser Manifest Adjustments
  2. Using WebExtension Polyfills
  3. Exploring Extension Development Frameworks
  4. Packaging and Publishing for Multiple Stores
← Back to Browser Extensions Development (Chrome & Edge)