| name | extension-publish |
| description | Prepare, submit, and optimize Chrome Web Store listings. Covers workflow, checklist, rejection reasons, listing optimization, and CI/CD automation. |
extension-publishing
Workflow
prepare → package → submit → review → publish
- Prepare: assets, privacy policy, permission justifications, manifest
- Package:
zip source (exclude dev files), validate manifest
- Submit: Chrome Web Store Developer Dashboard
- Review: 1–3 days typical; up to 7 days for new publishers
- Publish: auto or manual rollout
Pre-Submission Checklist (Quick)
Full checklist: references/submission-checklist.md
Top 10 Rejection Reasons
- Single purpose violation — does too many unrelated things
- Excessive/unnecessary permissions
- Missing privacy policy (required when user data collected)
- Missing permission justification in submission form
- Description doesn't match functionality
- Keyword spam in title/description
- Remote code execution (
eval, external scripts)
- Improper user data handling or disclosure
- Extension non-functional or crashes
- Broken features / inaccessible links
Full details + fixes: references/common-rejections.md
Listing Optimization Essentials
- Title:
<Action verb> + <Benefit>, max 45 chars, no keyword stuffing
- Description first 150 chars: shown in search — make them count
- Structure: problem → solution → key benefits → CTA
- Screenshots: annotate features, show real UI, 1280×800
- Category: choose most specific fit
Full guide: references/store-listing-optimization.md
CI/CD with chrome-webstore-upload
Install
npm install -g chrome-webstore-upload-cli
Upload & Publish
chrome-webstore-upload upload \
--source extension.zip \
--extension-id $EXT_ID \
--client-id $CLIENT_ID \
--client-secret $CLIENT_SECRET \
--refresh-token $REFRESH_TOKEN
chrome-webstore-upload publish \
--extension-id $EXT_ID \
--client-id $CLIENT_ID \
--client-secret $CLIENT_SECRET \
--refresh-token $REFRESH_TOKEN
Required Env Vars
| Var | Source |
|---|
EXT_ID | Dashboard URL |
CLIENT_ID | GCP OAuth client |
CLIENT_SECRET | GCP OAuth client |
REFRESH_TOKEN | Run OAuth flow once |
Full GitHub Actions pipeline: references/ci-cd-automation.md
Plasmo Built-in Publishing
Plasmo has integrated browser store submission (https://docs.plasmo.com/):
plasmo build
plasmo package
Reference Files