Your Extension Works Locally. Now Ship It to 3 Billion Chrome Users.

You Built Something. Now What?

So your extension works on your machine. You've been using it for a few days, maybe showed it to a friend. It's good. It solves a real problem.

But right now, it lives on your laptop. To share it, you'd have to tell people: "clone this repo, open chrome://extensions, enable developer mode, click load unpacked..." — and you've already lost 95% of potential users.

The Chrome Web Store changes that. One link. One click. Installed.

This is the guide to getting your extension from "works on my machine" to "available to anyone with Chrome, Brave, or Edge."

Before You Start: The Checklist

You need four things:

  1. A Google Developer account ($5 one-time fee)
  2. Your extension packaged as a .zip file
  3. Store listing assets (icons, screenshots, description)
  4. A privacy policy (even if your extension collects nothing)

Let's go through each one.

Step 1: Register as a Chrome Web Store Developer

Go to the Chrome Web Store Developer Dashboard.

  • Sign in with your Google account
  • Pay the $5 one-time registration fee
  • Accept the developer agreement

That's it. You're a registered extension developer. This account is permanent — you'll use it for every extension you ever publish.

Tip: Use a dedicated Google account if you plan to build multiple extensions. It keeps things clean.

Step 2: Prepare Your Extension for Production

Clean your manifest.json

Make sure your manifest has everything the store requires:

json
{
  "manifest_version": 3,
  "name": "D-Tox: YouTube Detox",
  "version": "1.0.0",
  "description": "Hide distractions, disable autoplay, reclaim your attention.",
  "icons": {
    "16": "icon-16.png",
    "48": "icon-48.png",
    "128": "icon-128.png"
  },
  "permissions": ["storage", "activeTab"],
  "host_permissions": ["https://www.youtube.com/*"]
}

Critical things the store checks:

  • name must be unique on the store
  • description must be under 132 characters
  • version must follow semver (e.g., 1.0.0)
  • Icons at 16x16, 48x48, and 128x128 pixels are required
  • Only request permissions you actually use

Build and zip

If you're using a build tool like WXT:

bash
npm run build

Then zip the build output:

bash
cd dist/chrome-mv3
zip -r ../../d-tox-v1.0.0.zip .

If you're using plain HTML/JS, just zip your project folder directly — minus node_modules, .git, and any dev files.

Important: The zip must contain manifest.json at the root level. Not inside a subfolder.

Step 3: Create Your Store Listing Assets

This is where most developers rush and regret it later. Your store listing is your landing page. It's the difference between someone installing your extension and bouncing.

Required assets:

1. Store Icon (128x128 PNG)

You already have this in your manifest. But make it good. This is what people see when browsing the store. It should be:

  • Recognizable at small sizes
  • Not just text — use a symbol or shape
  • Consistent with your extension's branding

2. Screenshots (1280x800 or 640x400)

You need at least 1 screenshot, but I recommend 3-5:

  • Screenshot 1: Your extension popup with toggles active
  • Screenshot 2: YouTube before D-Tox (cluttered)
  • Screenshot 3: YouTube after D-Tox (clean)
  • Screenshot 4: The presets tab
  • Screenshot 5: The settings/more tab

How to take good screenshots:

  1. Open your extension popup
  2. Use Chrome DevTools (right-click popup > Inspect)
  3. In DevTools, click the device toolbar icon
  4. Set dimensions to 1280x800
  5. Take a screenshot (Ctrl+Shift+P > "Capture screenshot")

3. Promotional images (optional but recommended)

  • Small tile: 440x280 — shown in store search results
  • Marquee: 1400x560 — shown if featured

Writing your store description

You get a detailed description field (up to 16,000 characters). Structure it like this:

plaintext
[One-line pitch]
 
[3-4 bullet points of key features]
 
[How it works — 2-3 sentences]
 
[Privacy note]
 
[Link to source code if open source]

Real example for D-Tox:

plaintext
Detox your YouTube. D-Tox hides distracting elements so you
only see what you intentionally search for.
 
Features:
- 20 toggle controls (home feed, shorts, comments, sidebar, and more)
- 4 preset profiles (Minimal, Focus, Light, Custom)
- Master on/off switch — pause D-Tox with one click
- Export/import your settings
- Works on Chrome, Brave, and Edge
 
How it works:
Click the D-Tox icon in your toolbar. Toggle what you want hidden.
Changes apply instantly — no page reload needed.
 
Privacy:
D-Tox stores your preferences locally using Chrome's storage API.
No data is collected, transmitted, or shared. Ever.
 
Open source: https://github.com/najmushsaaquib/d-tox

Step 4: Write a Privacy Policy

Google requires a privacy policy URL, even if you collect zero data.

The simplest approach — create a page on your website or a GitHub gist:

markdown
# D-Tox Privacy Policy
 
Last updated: March 2026
 
D-Tox does not collect, store, or transmit any personal data.
 
All user preferences are stored locally on your device using
Chrome's storage API (chrome.storage.local). No information
leaves your browser.
 
D-Tox does not use analytics, tracking, cookies, or any
third-party services.
 
Contact: [email protected]

Host this somewhere with a permanent URL. You'll paste this URL in the developer dashboard.

Step 5: Submit for Review

Now the actual submission:

  1. Go to the Developer Dashboard
  2. Click "New Item"
  3. Upload your .zip file
  4. Fill in the store listing:
    • Language, description, category ("Productivity" works for most)
    • Upload screenshots and icons
    • Paste your privacy policy URL
  5. Under Distribution:
    • Choose Public (visible to everyone)
    • Select which countries (usually "All regions")
  6. Click "Submit for Review"

The Review Process

Google manually reviews every extension. Here's what to expect:

  • First submission: 1-3 business days (sometimes up to a week)
  • Updates after approval: Usually 1-2 days
  • Rejections: They'll email you the specific reason. Fix it and resubmit.

Common rejection reasons:

  • Requesting permissions you don't use (e.g., tabs when you don't need it)
  • Missing or inadequate privacy policy
  • Description doesn't match what the extension does
  • Icon or screenshots are misleading

Step 6: You're Live

Once approved, you'll get a Chrome Web Store URL like:

plaintext
https://chrome.google.com/webstore/detail/d-tox/abcdefghijklmnop

Share this link everywhere. Anyone who clicks it can install your extension in one click.

Publishing Updates

When you release a new version:

  1. Bump the version in manifest.json (e.g., 1.0.01.1.0)
  2. Rebuild and zip
  3. Go to Developer Dashboard > Your extension > Package
  4. Click "Upload new package"
  5. Upload the new zip
  6. Submit for review

Versioning convention:

  • 1.0.1 — Bug fixes
  • 1.1.0 — New features
  • 2.0.0 — Breaking changes or major redesign

What About Firefox, Edge, and Brave?

Brave and Edge use the Chrome Web Store directly. Anyone who installs your Chrome extension can use it on Brave and Edge too. No extra work.

Firefox has its own store: addons.mozilla.org. The process is similar:

  1. Create a Firefox developer account (free)
  2. Upload your extension (use npm run build:firefox if using WXT)
  3. Submit for review (usually faster than Chrome)

If you used WXT like I did, you can build for both with one codebase:

bash
npm run build           # Chrome/Brave/Edge
npm run build:firefox   # Firefox

The Reality of Distribution

Publishing is the easy part. Getting users is the hard part.

Things that actually work:

  • Write about it. Blog posts, Twitter threads, Reddit posts in relevant communities.
  • Solve a real problem. Extensions that scratch a genuine itch get shared organically.
  • Keep the store listing honest. Over-promising leads to bad reviews which tanks your ranking.
  • Respond to reviews. Even negative ones. It shows you care.
  • Open source it. Trust is everything for extensions. People want to know what code is running in their browser.

The $5 Investment That Changes Everything

For five dollars and a weekend of work, you can put a tool in front of millions of potential users. There is no other distribution channel this accessible for indie developers.

You don't need a company. You don't need a marketing budget. You don't need permission from anyone.

You just need something that solves a problem, and the willingness to ship it.


D-Tox is open source and available on the Chrome Web Store (link coming soon) and GitHub. If you found this helpful, consider starring the repo or sharing it with someone who needs to detox their YouTube.

Back to Blog