Skip to content

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
Step-by-step guide: how to use WXTInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js · npm, pnpm, or bun

    Bootstrap a new project with npm

    npx wxt@latest init

    Bootstrap a new project with pnpm

    pnpm dlx wxt@latest init

    Bootstrap a new project with bun

    bunx wxt@latest init
  2. 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. 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

ProjectStarsTypeLevelUpdatedBest for
wxt (this)10.7kDev toolintermediate4 days agoDevelopers building a browser extension who want a structured project setup
plasmo13.2kFrameworkintermediate6 days agoDevelopers building a browser extension for Chrome, Firefox or Edge
vite83.7kDev toolintermediate4 days agoFrontend developers starting a new modern web project
webpack66kDev toolintermediate4 days agoFrontend developers building single-page or multi-page web apps
parcel44kDev toolbeginner4 days agoWeb developers who want a bundler that works without a config file
rspack13kDev toolintermediate4 days agoTeams 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.