What is Extension.js?
Build browser extensions for Chrome, Edge, and Firefox with one modern workflow. Extension.js handles manifest compilation, browser-specific output, reload behavior, and packaging so you can focus on product features.
Use familiar web tooling like TypeScript, React, Vue, and Tailwind CSS. Keep direct access to native extension APIs.
Watch the workflow
Pick your path
Choose the right command
Start a new extension
Use the create command to scaffold a new project and --template to start from a stack-specific baseline.
For a list of all supported templates, check out the Templates page.
Use Extension.js with an existing extension
If you already have an extension, install the extension package and wire scripts once. This keeps local development, testing, and release builds consistent.
Step 1 - install the extension package as a devDependency
Step 2 - link your npm scripts to the extension commands
That's it! You're all set.
- Run
npm run devfor daily iteration and watch mode. - Run
npm run startfor production build + immediate launch. - Run
npm run buildfor store-ready production artifacts.
Best practices
- Keep one command flow: Use
create->dev->buildas your default loop. - Target browsers explicitly: Validate with
--browser=chrome,firefoxbefore release. - Centralize defaults: Put shared command/browser settings in
extension.config.js.
Next steps
- Learn how to create your first extension.
- Explore built-in templates.
- Add quality gates with Playwright E2E.
- Review the privacy contract in Telemetry and privacy.
- Strengthen reliability with Troubleshooting, Security checklist, and Performance playbook.
