
WXT
A framework for building browser extensions, with fast dev reloads and TypeScript support.
- Stars
- 10.7k
- Forks
- 589
- Licence
- MIT
- Language
- TypeScript
- Last update
- 4 days ago
- Type
- Dev tool
What it is
WXT is an open-source framework that helps developers build web extensions (add-ons for browsers like Chrome). It handles project setup, a development server with hot module replacement and fast reload, and TypeScript support, so developers spend less time on build configuration. The README describes it as similar to Nuxt, but for web extensions.
- Start a new extension project with the init command
- Build a browser extension with entrypoints defined as files
- Reuse shared code across several extensions using its module system
- Run a dev mode that reloads the extension as you edit code
- Analyze bundle size with the built-in bundle analysis feature
Great for
- Developers building a browser extension who want a structured project setup
- Teams that want one codebase targeting multiple browsers
- Developers who use Vue, React, Svelte, or another frontend framework and want to keep it
- Developers who want help with bundling and publishing extensions
Not ideal for
- People who only want to use an existing extension rather than build one, since this is a developer tool
- Developers who want to write extensions with no build step at all, since WXT is built around a bundler workflow
- Beginners with no JavaScript or TypeScript experience, since the README assumes familiarity with web development
How to get it
- 1
Install with a package manager
You'll need: Node.js · npm, pnpm, or bun
Bootstrap a new project with npm
npx wxt@latest initBootstrap a new project with pnpm
pnpm dlx wxt@latest initBootstrap a new project with bun
bunx wxt@latest init - 2
Run it
- Run the init command with your preferred package manager
- Follow the prompts to set up the new project
- Start the development server from the generated project
- Load the built extension in your browser from the development output
- 3
Get the most out of it
- Use the file-based entrypoints to organize extension pages and scripts
- Use the module system to share code between extensions
- Use the automated publishing feature when you are ready to release
- Check the bundle analysis output to keep extensions small
Downloads
Strengths
- Listed features include support for MV2 and MV3 and for all browsers
- Works with Vue, React, Svelte and other frameworks, according to the README
- Released under the MIT license with a large community following (about 10,700 stars)
Trade-offs
- The README is truncated and does not detail browser-specific limits or edge cases
- Browser extension platforms change over time, so projects may need upkeep as standards shift
- Documentation is mostly on an external site, so the README alone gives limited setup detail
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| wxt (this) | 10.7k | Dev tool | intermediate | 4 days ago | Developers building a browser extension who want a structured project setup |
| plasmo | 13.2k | Framework | intermediate | 6 days ago | Developers building a browser extension for Chrome, Firefox or Edge |
| vite | 83.7k | Dev tool | intermediate | 4 days ago | Frontend developers starting a new modern web project |
| webpack | 66k | Dev tool | intermediate | 4 days ago | Frontend developers building single-page or multi-page web apps |
| parcel | 44k | Dev tool | beginner | 4 days ago | Web developers who want a bundler that works without a config file |
| rspack | 13k | Dev tool | intermediate | 4 days ago | Teams with a large webpack project who want faster builds without rewriting their config |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.