# Extension.js

Zero-config CLI framework for building one extension codebase that ships to Chrome, Firefox, Edge, and Safari

https://topboilerplates.com/extension-js

Framework: React | Pricing: Free | GitHub stars: 5069

## Verdict

Best for: Developers who want a single codebase that targets Chrome, Firefox, Edge, and (limited) Safari with genuinely zero build configuration, regardless of which UI framework they pick.

Skip if: You want a framework with a large, established plugin/module ecosystem already built up - Extension.js is newer and smaller than WXT or Plasmo.

## Description

Extension.js is an open-source, cross-browser extension framework maintained by Cezar Augusto and the Extension.js authors. Its CLI (`npx extension@latest create`) scaffolds a project with no build configuration required, supporting vanilla JavaScript/TypeScript, WebAssembly, and React, Vue, Svelte, or Preact for UI. It compiles browser-prefixed manifest keys into per-browser Manifest V3 output, offers hot module replacement for background and content scripts during development, and packages production zips ready for the Chrome Web Store, Firefox Add-ons, and Edge Add-ons.

## Pros and cons

+ True zero-config CLI - `npx extension@latest create` needs no webpack/vite config to get started

+ Supports React, Vue, Svelte, and Preact plus plain TS/JS/WASM from one framework

+ Browser-prefixed manifest keys (chrome:, firefox:, edge:) make per-browser overrides explicit

+ Actively developed with commits landing multiple times a week

- Smaller community and ecosystem than Plasmo or WXT, fewer third-party guides

- Safari support is explicitly limited and macOS-only

- Newer project overall, so long-term API stability is less proven

## Stack

- TypeScript

## Links

- Website: https://topboilerplates.com/go/extension-js
- GitHub: https://github.com/extension-js/extension.js

## Alternatives

- [WXT](https://topboilerplates.com/wxt)
- [Plasmo](https://topboilerplates.com/plasmo)
