The Chrome Extension Deployment Checklist
Tags: chrome, extension, deployment, checklist
Published: 2021-05-01 07:59:48

I always find it frustrating when the documents do not specify exactly what is required for deployment of something to an app store, something which has delayed my current team a few times. 

Here is what the Chrome Web Store requires for deployment of an extension: 

**Title from package***: This is the title that you set in the `manifest.json` as the value for `name`.

**Summary from package**: This is the sentence that you set in the `manifest.json`under `description`.

**Description***: An up to 16,000 character block of text that focuses on explaining what your extension does and why users should install it. 

**Category**: This is a dropdown of several categories from which you must choose one. 

**Language**: This is a dropdown of many languages from which you must choose one. There is also a localization process for supporting multiple languages. 

**Store Icon***: This is a 128 pixel by 128 pixel PNG (mandatory file format) image that should work well on both light and dark backgrounds. A 16 pixel margin should be included on all sides of the icon, so the actual icon size should be 96 pixels by 96 pixels.  

**Global Promo Video**: This is intended to by a YouTube video link to whatever promotional video you have made for the extension. 

**Screenshots***: Screenshots must be 1280 pixels by 800 pixels or 640 pixels by 400 pixels. They must either be JPEG files or 24-bit PNG files with no alpha. At least one is required, but a maximum of 5 are allowed. 

**Small Promo Tile**: This is a 440 pixel by 280 pixel image that must be either a JPEG or a 24-bit PNG file with no alpha. 

**Large Promo Tile**: This is a 920 pixel by 680 pixel image that must be either a JPEG or a 24-bit PNG file with no alpha. 

**Marquee Promo Tile**: This is a 1400 pixel by 560 pixel image that must be either a JPEG or a 24-bit PNG file with no alpha. 

**Official URL**: This is a website URL that needs to be added through the Google Search Console. Unfortunately, a URL cannot simply be pasted in. 

**Homepage URL**: This is another website URL. It can just be pasted in, unlike the **Official URL**. 

**Support URL**: This is intended to be a website URL. 

**Single Purpose***: This is the single purpose of the extension that is narrow in scope and easy to understand. It must be less than 1000 characters. 

**Permission Justifications***: These are 1000 character explanations for why your extension requires certain functionality that can be used to harm extension users. Explain why that permission is specifically required for the purpose of your extension. 

**Remote Code**: This is meant to justify why you are using code which is imported from a server through a `<script>` tag or modules pointing to external files. 

**Data Usage**: These are a series of checkboxes that ask you about the data that you are collecting, if any. No explanations required, just binary answers. 

**Payments**: Whether your extension requires or can be enhanced by purchasing items, features, or subscriptions. 

**Visibility**: You can set it to `public`, where it is placed in the Web Store. It can be set to `unlisted`, where only those with a link see it. It can also be set to `private` so that 

**Distribution**: A checklist of countries where you might want to distribute the extension. 

Happy building!