Build, test and ship Manifest V3 extensions
A practical cross-browser resource for building, testing, and publishing modern browser extensions. Every page leads with the constraint that bites first — service worker eviction, permission review, the API the other engine does not have, or the auto-update that landed while the user had twenty tabs open.
4 tracks · 28 topic guides · 85 in-depth pages · Chrome, Firefox and Safari differences on every page
Four tracks through MV3
Pick the track that matches what you are building right now — each one ends where the next begins.
Browse every topic
28 guides, each with runnable code, an execution-context note under every snippet, and the Chrome, Firefox and Safari divergences spelled out.
Testing, Debugging & Performance Optimization
Unit test, end-to-end automate, debug every MV3 execution context, and profile service worker performance — a practical engineering discipline for Chrome, Firefox, and Safari extensions.
Core APIs & Cross-Browser Data Management
Master MV3 storage, messaging, declarativeNetRequest, tabs, and scripting APIs — with cross-browser compatibility patterns for Chrome, Firefox, and Safari extensions.
- Alarms & Scheduling Background Jobs · 2 pages
- Chrome Storage API & Sync · 6 pages
- Cross-Browser API Compatibility · 3 pages
- Declarative Net Request Rules · 2 pages
- Identity & OAuth Authentication · 4 pages
- Message Passing Architecture in MV3 · 6 pages
- Scripting API & Dynamic Injection · 3 pages
- Tabs API & Window Management · 5 pages
MV3 Architecture & Extension Lifecycle
Master Manifest V3 service workers, content scripts, popup & options UI, and store compliance — with cross-browser patterns for Chrome, Firefox, and Safari.
- Content Scripts & DOM Injection · 2 pages
- Extension Popup Architecture · 2 pages
- Extension Security & CSP Hardening · 2 pages
- Extension Updates & Data Migration · 4 pages
- Offscreen Documents & DOM Access · 2 pages
- Options Page Configuration · 2 pages
- Service Worker Fundamentals · 4 pages
- Store Submission, Permissions & Compliance · 4 pages
UI/UX Patterns & Interactive Components
Build production-ready extension UIs in MV3: popup design, options pages, keyboard shortcuts, context menus, and side panels — with accessibility, theming, and CSP patterns.
- Context Menus & Right-Click Actions · 2 pages
- Internationalization & Accessibility · 4 pages
- Keyboard Shortcuts & Commands · 3 pages
- Notifications, Badges & the Action API · 2 pages
- Options Page Layouts · 4 pages
- Popup Interface Design · 4 pages
- Side Panel & DevTools Interfaces · 2 pages
Recently added
The newest guides, covering the parts of MV3 that most often arrive late in a project — signing users in, shipping an update onto a running browser, and the accessibility work that a 360-pixel popup makes harder than it looks.
Identity & OAuth Authentication
Sign users in from a Manifest V3 extension: launchWebAuthFlow with PKCE, redirect URLs per browser, token storage that survives worker eviction, and refresh without a secret.
Extension Updates & Data Migration
Ship an update without breaking installed users: onInstalled reasons, versioned storage migrations, orphaned content scripts, and controlling when the new version takes over.
Internationalization & Accessibility
Localise and make accessible every MV3 extension surface: the i18n API, _locales bundles, CSP-safe DOM translation, keyboard navigation, RTL layouts and live announcements.
Fixing Extension Context Invalidated After an Update
Why open tabs throw Extension context invalidated after an auto-update, how to tell orphaning from worker eviction, and how to retire or re-inject the old content script.
Handling Safari Web Extension Conversion Gaps
Run safari-web-extension-converter and fix what it reports: missing APIs, the native container app, stricter permission prompts, and behaviour probes for stubbed methods.
Measuring Content Script Impact on Page Load
Quantify what your content script costs the pages it runs on: run_at trade-offs, long-task attribution, layout thrash from injected DOM, and a repeatable A/B measurement.
Start here
Coming from MV2
Your background page is now an evictable service worker, and that single change explains most of the bugs you are about to meet.
Migration guideBuilding the interface
Popups, options pages, side panels and context menus — including which surface is right for state the user needs to keep visible.
UI patternsGetting it published
Permission justifications reviewers accept, the audit that catches rejections before upload, and a release pipeline that reaches all three stores.
Submission & complianceShipping version two
An auto-update lands on a running browser: storage migrations that survive eviction, and the open tabs still running last week's content script.
Updates & migration