publish your first chrome extension! (& have it approved the 1st time)

my-stuff
Women in Technology
5 min readApr 27, 2023

Everything you need to get your extension onto the Chrome Web Store. As well as real examples for permission justifications and settings!

After getting inspired from some other stories here on Medium, I decided a fun side project would be to create my own chrome extension! If anyone is interested in the actual code behind the extension, comment below and I’ll be happy to do another post explaining the in’s and out’s of the extension code.

(If you’re just here to see how I got my extension on the Chrome Web Store, you can scroll past this section)

My Extension: Tab-Pool

The extension I created is a tab organizing extension called Tab-Pool! If you’re like me and always have about 100 tabs open at a time, or just love feeling organized, then you should definitely check it out!

Creating a New Tab-Pool
Minimize/Maximize Tab-Pools

Link to Tab-Pool Extension:
https://chrome.google.com/webstore/detail/tab-pool/jglbbfpmbcpipcmbljcobbiiccanjppl

How to get your Extension on the Chrome Web Store:

To make things simple, I’m going to divide the process into 5 sections, each with a checklist to ensure your chrome extension is approved!

MANIFEST.JSON PRE-UPLOAD SPECIFICATIONS:

Here are the things you should do or double-check in your manifest.json file, before uploading the file to the developer console.

Checklist:
1) Version Number:
Specify a version number for your extension. The chrome developer console also recommends to make the version as small as possible such as 0.0.1, because every time you update your extension in the future, you’ll need to use a bigger and bigger version number
2) Description:
make sure to include a short description of your extension.
3) Default Language:
If your extension has multiple language options make sure to specify the default_locale.
4) Icons:
Provide the icon for your extension as a 16x16pixel, 32x32 pixel, 48x48 pixel, and 128x128 pixel. This is really important to make sure your icon is never blurry or too small.
Example manifest.json file:

{
"manifest_version": 3,
"name": "Tab-Pool",
"description": "Easily organize, group, and customize your tabs!",
"version": "0.0.1",
"default_locale": "en",
"icons": {
"16": "icons/icon16.png",
"32": "icons/icon32.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"action": {
"default_popup": "popup/popup.html",
"default_title": "Tab-Pool",
"default_icon": {
"16": "icons/icon16.png",
"32": "icons/icon32.png"
}
},
"host_permissions": ["https://*/*"],
"permissions": ["tabGroups", "tabs"]
}

UPLOADING YOUR EXTENSION:

Once you’ve double checked all the steps above for your manifest file it’s time to upload the file. In order to get an extension into the Chrome Web Store you’ll need to create a developer profile. There is a one-time 5$ charge for the developer profile, but after that you can post as many extensions as you want!
Checklist:
1) Create your extension!
2) Make a
Developer Account
3) Upload your extension as a
New Item

STORE LISTING INFORMATION + CONTENT:

After uploading as an item, it’s time to fill out the necessary Store Listing information. Here is your check list of what you’ll need:

Checklist:
1) Description:

Up to 16,000 characters to explain
what the item does and why users should install it
2) Category:
This step is fairly simple, just select what category your extension falls under.
3) Graphics:
Required:

-Store Icon (128x128 pixels)
-Up to 5 Localized Screenshots (either 1280x800 or 640x400 pixels)
-Up to 5 Global Screenshots (either 1280x800 or 640x400 pixels)
-Small promo tile (440x280 pixels)
-Marquee promo tile (1400x560 pixels)
Note: You can totally use the same screenshots for both the local and global assets! But it’s really important that the sizes are correct!
Optional:
-Links to Promo Video
-Homepage URL
-Support URL

PRIVACY PRACTICES (!!!)

This section is very important because it is reviewed by the Chrome Web Store team, and helps them decide if your extension should be accepted or rejected.

Checklist of things to have ready:

-Single Purpose
The developer dashboard describes this single purpose as ‘narrow and easy-to-understand.’ I might have taken this too literally, but my extension did get approved on my first try, so if you need an example, here’s what I put:

-Permission Justification
As a first time chrome web store uploader, this was by far the most confusing part of the process. Essentially, be prepared to write a statement justifying every permission your chrome extension uses. If you’re unsure about what will be on this list for you, just look in your manifest file under permissions and/or host permissions

Example: My permission justifications that were approved:

DISTRIBUTION:

Lastly we have the distribution section. Here is where you specify things like if your app (extension) is free or requires payments, if the visibility is public, private, or unlisted (only people with the link can see it), and what regions of the world it’s available too.

Time to Submit for Review!

Once everything looks good, you can now click the ‘submit for review’ button! If you’re curious about how long it takes to get approved, chrome’s documentation says that the process usually takes less than 24 hours. However, mine look about 36–48 hours (I lost track exactly haha), but this is probably because of my use of the ‘host permissions.’

Thanks for reading and good luck! If this story helps anyone, I’d love to try your extension so please put the link in the comments!

--

--