wxt is a free, open source build & deployment project written in TypeScript and released under MIT. It has 10,519 GitHub stars, 564 forks and 214 open issues, and was last pushed 2 days ago. On this registry it ranks #15 of 59 tracked projects in Build & Deployment, with 5 head-to-head comparisons available. It gained 14 stars over the last 3 tracked days.

What is wxt?

What it is

WXT is a next-generation framework for developing web extensions, written in TypeScript and published under the MIT license. It lives in the JavaScript and TypeScript ecosystem, distributed through npm as the wxt package, and its own description frames it as "like Nuxt, but for Web Extensions" — that is, a batteries-included toolkit that turns extension development into a structured, conventional project layout rather than a pile of loose manifest files and hand-wired build scripts. The project has been in development for roughly three years, carries about 10,500 stars and 564 forks on GitHub, and is maintained by @aklinker1 together with a community of contributors. Documentation, configuration reference, and example projects live at wxt.dev.

The concrete problem it solves is the friction of building, running, and shipping browser extensions. Extension authors normally juggle manifest versions, per-browser output, static asset copying, and a slow manual reload cycle. WXT replaces that with file-based entrypoints, a dev server delivering hot module replacement and fast reload, automatic TypeScript handling with auto-imports, and support for both Manifest V2 and Manifest V3 across all browsers. It also covers the release side with automated publishing, so the same project can target Chrome and other browsers without per-target rewrites of build configuration.

Key capabilities

  • Supports all browsers, with both MV2 and MV3 manifests generated from one project.
  • Dev mode with HMR and fast reload through a dedicated dev server.
  • File-based entrypoints that derive extension entry points from the directory structure.
  • TypeScript support with auto-imports for common APIs.
  • Frontend framework agnostic: works with Vue, React, Svelte, and others.
  • Module system for reusing code between extensions.
  • Automated publishing, plus bundle analysis and quick project bootstrapping.

Who uses it and how

  • Extension authors bootstrap a new project with the init command and develop against the WXT dev server.
  • Teams building cross-browser extensions write once and emit MV2 or MV3 output per browser target.
  • Developers already working with Vue, React, or Svelte keep their framework of choice and add extension plumbing through WXT.
  • Maintainers of several related extensions share code between them through the module system.
  • Projects in a release pipeline use automated publishing to ship builds to browser stores.

Getting started

Bootstrap a project with npx wxt@latest init, pnpm dlx wxt@latest init, or bunx wxt@latest init. The installation guide, configuration reference, and examples are on wxt.dev.

When to use it — and when not to

WXT is a build and development tool, so a self-hoster operates a Node toolchain and nothing more — no database, storage, or SMTP service is involved. It is a sensible choice when a project needs one codebase producing MV2 and MV3 builds across browsers and wants HMR during development. Note that no paid product comparison is documented, development is funded entirely by sponsors, and the repository carries around 214 open issues

project readme (upstream, from github) — read inline

WXT Logo WXT

npm version downloads license | MIT coverage

Next-gen framework for developing web extensions.

It's like Nuxt, but for Web Extensions

Get StartedConfigurationExamplesChangelogDiscord

Example CLI Output

Demo

Quick Start

Bootstrap a new project:

# npm
npx wxt@latest init

# pnpm
pnpm dlx wxt@latest init

# bun
bunx wxt@latest init

Or see the installation guide to get started with WXT.

Features

  • 🌐 Supports all browsers
  • ✅ Supports both MV2 and MV3
  • ⚡ Dev mode with HMR & fast reload
  • 📂 File based entrypoints
  • 🚔 TypeScript
  • 🦾 Auto-imports
  • 🤖 Automated publishing
  • 🎨 Frontend framework agnostic: works with Vue, React, Svelte, etc
  • 📦 Module system for reusing code between extensions
  • 🖍️ Quickly bootstrap a new project
  • 📏 Bundle analysis

Sponsors

WXT is a MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome backers. If you'd like to join them, please consider sponsoring WXT's development.

WXT Sponsors

Contributors

Published under the MIT license. Made by @aklinker1 and community 💛

WXT contributors

Frequently asked questions

Is wxt free to use?

wxt is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does wxt do?

⚡ Next-gen Web Extension Framework

What is wxt written in?

wxt is primarily written in TypeScript. Its source is publicly available at https://github.com/wxt-dev/wxt, and it has 10,519 GitHub stars.