Publishing to stores

Chrome Web Store

Publish your extension to Google Chrome Web Store.

Chrome Web Store is the most popular store for browser extensions, as it makes them available in any Chromium-based browser, including Google Chrome, Edge, Brave, and many others.

To submit your extension to Chrome Web Store, you'll need to complete a few steps. Here, we'll go through them.

Prerequisite

Make sure your extension follows the guidelines and other requirements to increase your chances of getting approved.

Developer account

Before you can publish items on the Chrome Web Store, you must register as a CWS developer and pay a one-time registration fee. You must provide a developer email when you create your developer account.

To register, just access the developer console. The first time you do this, the following registration screen will appear. First, agree to the developer agreement and policies, then pay the registration fee.

Chrome registration fee

Once you pay the registration fee and agree to the terms, your account will be created, and you'll be able to proceed to fill out additional information about it.

Chrome developer account

There are a few fields that you'll need to fill in:

  • Publisher name: Appears under the title of each of your extensions. If you are a verified publisher, you can display an official publisher URL instead.
  • Verified email: Verifying your contact email address is required when you set up a new developer account. It's only displayed under your extensions' contact information. Any notifications will be sent to your Chrome Web Store developer account email.
  • Physical address: Only items that offer functionality to purchase items, additional features, or subscriptions must include a physical address.

Submission

After registering your developer account, setting it up, and preparing your extension, you're ready to publish it to the store.

You can submit your extension in two ways:

  • Manually: By uploading your extension's bundle directly to the store.
  • Automatically: By using GitHub Actions to submit your extension to the stores.

The first submission must be done manually, while subsequent updates can be submitted automatically. We'll go through both approaches.

Manual submission

To manually submit your extension to stores, you will first need to get your extension bundle. If you ran the build step locally, you should already have the .zip file in your extension's build folder.

If you used GitHub Actions to build your extension, you can find the results in the workflow run. Download the artifacts and save them on your local machine.

Then, use the following steps to upload your item:

  1. Go to the Chrome Web Store Developer Dashboard.
  2. Sign in to your developer account.
  3. Click on the Add new item button.
  4. Click Choose file > your zip file > Upload. If your item's manifest and other contents are valid, you will see a new item in the dashboard.

Chrome extension page

After you upload the bundle, you'll need to fill in the extension's details, such as the icons, privacy settings, permissions justification, and other information.

Please refer to the official guides on how to set up your extension's details.

Automated submission

First submission must be done manually

The first submission of your extension to Chrome Web Store must be done manually because you need to provide the store's credentials and extension ID to automation, which will be available only after the first bundle upload.

TurboStarter comes with a pre-configured GitHub Actions workflow to submit your extension to web stores automatically. It's located in the .github/workflows/publish-extension.yml file.

What you need to do is fill the keys.json file with your store's credentials using the keys.template.json file as a template:

keys.json
{
  "chrome": {
    "clientId": "123",
    "clientSecret": "123",
    "refreshToken": "789",
    "extId": "abcd"
  }
}

Please refer to the official guide to learn how to get these credentials correctly.

The keys.json file is ignored by Git, so you don't need to worry about it being exposed as it won't be committed to your repository.

After that, set EXTENSION_SUBMIT_KEYS as a secret in your Github repository to the content of keys.json file.

That's it! You can run the workflow and it will submit your extension to the Chrome Web Store.

Chrome extension workflow

Automated submission to review

This workflow will also try to send your extension to review, but it's not guaranteed to happen. You need to have all required information filled in your extension's details page to make it possible.

Even then, when you introduce some breaking change (e.g. add another permission), you'll need to update your extension store metadata and automatic submit won't be possible.

To opt out of this behavior (and use only automatic uploading to store, but not sending to review) you can set "uploadOnly": true in keys.json file:

keys.json
{
  "chrome": {
    "clientId": "123",
    "clientSecret": "123",
    "refreshToken": "789",
    "extId": "abcd",
    "uploadOnly": true
  }
}

Then, your extension bundle will be uploaded to the store, but you will need to send it to review manually.

Review

After filling out the information about your item, you are ready to send it to review. Click on Submit for review button and confirm that you want to submit your item in the following dialog:

Chrome submit for review

The confirmation dialog shown above also lets you control the timing of your item's publishing. If you uncheck the checkbox, your item will not be published immediately after its review is complete. Instead, you'll be able to manually publish it at a time of your choosing once the review is complete.

After you submit the item for review, it will undergo a review process. The time for this review depends on the nature of your item. See Understanding the review process for more details.

There are important emails like take down or rejection notifications that are enabled by default. To receive an email notification when your item is published or staged, you can enable notifications on the Account page.

Chrome notifications

The review status of your item appears in the developer dashboard next to each item. The status can be one of the following:

  • Published: Your item is available to all users.
  • Pending: Your item is under review.
  • Rejected: Your item was rejected by the store.
  • Taken Down: Your item was taken down by the store.

Chrome extension status

You'll receive an email notification when the status of your item changes.

Your submission might be rejected

If your extension has been determined to violate one or more terms or policies, you will receive an email notification that contains the violation description and instructions on how to rectify it.

If you did not receive an email within a week, check the status of your item. If your item has been rejected, you can see the details on the Status tab of your item.

Chrome extension rejected

You'll need to fix the issues and upload a new version of your extension, make sure to follow the guidelines or check publishing troubleshooting for more info.

If you have been informed about a violation and you do not rectify it, your item will be taken down. See Violation enforcement for more details.

You can learn more about the review process in the official guides listed below.

Last updated on

On this page

Ship your startup everywhere. In minutes.Get TurboStarter