WXT
Open SourceThe web extension framework built on Vite.
Published 29 May 2026 · Last updated 27 September 2026
Scores
Popularity3/5
Growing alternative to Plasmo; gaining adoption in the extension development community.
Learning Curve2/5
Supports Vue, React, and Svelte; well-documented; significantly easier than raw extension development.
Flexibility4/5
Any framework (React, Vue, Svelte) with full browser API access and a flexible build pipeline.
Performance4/5
Builds efficient native extension output; performance is comparable to raw extension development.
Portability3/5
Extension-specific; React, Vue, and Svelte skills transfer elsewhere outside extension work.
About WXT
WXT (pronounced "wext") is an open-source framework for building browser extensions on top of Vite. Borrowing Nuxt's conventions, it discovers entrypoints from files, generates the manifest, auto-imports common APIs, and supports TypeScript throughout. It builds for Manifest V2 and V3 and targets Chrome, Firefox, Edge, Safari, and other Chromium browsers from one codebase.
It is framework-agnostic: popups, options pages, and content-script UIs can use React, Vue, Svelte, Solid, or plain TypeScript, with any Vite plugin available. In development WXT opens a managed browser with the extension loaded, hot-reloads UI pages, and quickly reloads background and content scripts when they change.
WXT also covers publishing: it zips builds, uploads them to the Chrome, Firefox, and Edge stores, and produces the source ZIP Firefox requires for review. Built-in storage and i18n helpers, a module system for reusing setup across projects, and remote-code bundling round it out. Messaging between extension contexts is not built in and comes from a small library such as @webext-core/messaging.
WXT is actively maintained, with frequent releases, and has become the common default for new extension projects, especially compared with Plasmo, whose releases have stalled. It is free under the MIT licence. Parts of the documentation are thin, and background service worker changes still trigger a full extension reload rather than true hot replacement.
Key Features
- Vite-based builds with access to the Vite plugin ecosystem
- File-based entrypoints with an auto-generated manifest
- One codebase for Chrome, Firefox, Edge, and Safari, on MV2 or MV3
- Framework-agnostic: React, Vue, Svelte, Solid, or plain TypeScript
- Dev mode with a managed browser, HMR for UI pages, and fast script reloads
- Nuxt-style auto-imports
- Publishing toolchain: ZIPs, store uploads, and Firefox source ZIPs
- Module system for reusing build and runtime code
Pros
- Actively maintained with frequent releases
- Works with any Vite-compatible UI framework
- Fast, low-friction development loop with a managed browser
- Covers publishing end to end, including Firefox source ZIPs
- Vite builds are fast and compatible with modern tooling
Cons
- Some documentation sections are incomplete
- No built-in messaging API; needs a small library or custom code
- Background service worker changes trigger a full reload
- Dev mode starts a fresh browser profile unless configured to persist one
WXT Pricing
Open SourceTech Stacks with WXT
Browser Extension Starter
ProjectA beginner-friendly stack for building cross-browser extensions. WXT handles the Manifest V3 boilerplate and cross-browser packaging; a component framework (React by default, with Vue.js and Svelte also available) and TypeScript provide a familiar UI layer; Supabase adds cloud storage and auth if the extension needs a backend.
Tools Related to WXT
Works well with WXT(3)
WXT is a browser extension framework that supports React as its UI component layer — React components power the popup and options pages.
WXT supports Svelte as its UI component layer — Svelte's lightweight compiled output is a natural fit for browser extension bundle size constraints.
WXT supports Vue as its UI component layer — Vue's progressive framework makes it a good fit for medium-complexity browser extension UIs.
Required by WXT(1)
WXT is a TypeScript-first framework for web extensions.
Alternatives to WXT(1)
WXT is Vite-based, framework-agnostic, and actively maintained; Plasmo is React-first on Parcel, with built-in messaging and Content Scripts UI but stalled releases. Pick WXT for new extensions, Plasmo mainly where a project already uses it.