Chrome extension Manifest V3 starter: popup, background, and permissions
A minimal MV3 Chrome extension layout with manifest.json, service worker, and popup, ready before you add Stripe checkout or Payhook paid access.
#manifest-v3#chrome-extension#getting-started
This tutorial walks through a minimal Manifest V3 extension you can hand to an AI builder or extend yourself. Payhook tutorials assume you already have this skeleton before wiring payments.
What you will build
manifest.jsonwith MV3 fields- A service worker (
background.js) for long-lived logic - A popup (
popup.html+popup.js) for user-facing controls
manifest.json
{
"manifest_version": 3,
"name": "My Extension",
"version": "0.1.0",
"description": "Starter MV3 extension",
"action": {
"default_popup": "popup.html",
"default_title": "My Extension"
},
"background": {
"service_worker": "background.js"
},
"permissions": ["storage"]
}
Load unpacked in chrome://extensions with Developer mode enabled.
Popup vs background
| Surface | Use for |
|---|---|
| Popup | Buttons, upgrade CTA, quick settings |
| Service worker | Entitlement checks, messaging, alarms |
Next steps
- Firefox extension Manifest V3 starter - gecko ID and
about:debugging - Safari Web Extension Manifest V3 starter - web layer + Xcode wrapper
- Stripe Connect for extension builders - products and checkout concepts
- Monetize a browser extension without a payment backend - hosted checkout without a custom payment backend
Related: Payhook docs, acme-extension sample.