WXT
Open SourceNext-gen Web Extension Framework.
Scores
About
WXT (pronounced "wext") is a next-generation open-source meta-framework for building browser extensions, built on top of Vite. Inspired by Nuxt's conventions, it introduces file-based entrypoint discovery, auto-imports, and TypeScript-first support to extension development. It supports both Manifest V2 and V3 and targets Chrome, Firefox, Edge, Safari, and other Chromium-based browsers from a single codebase.
Unlike Plasmo — which is React-centric and built on Parcel — WXT is fully framework-agnostic. Developers can use React, Vue, Svelte, SolidJS, or any framework with Vite support. Its dev mode is best-in-class: it opens a managed browser instance automatically, provides HMR for UI pages, and fast reloads for background and content scripts. Bundle output is significantly leaner than Plasmo (~400 KB vs ~800 KB in typical comparisons), which matters given Chrome Web Store size limits.
WXT covers the full extension lifecycle: automated ZIP creation and store publishing (including Firefox-required source ZIPs), a reusable module system, built-in storage and i18n APIs, and remote code bundling. With 237+ releases and active maintenance, WXT is widely recommended as the default choice for new browser extension projects as of 2025-2026.
Key Features
- Vite-based build — full Vite plugin ecosystem access, significantly faster builds than Parcel-based alternatives
- File-based entrypoints — manifest auto-generated from project structure with inline configuration, Nuxt/Next.js-style
- Cross-browser, dual-manifest — single codebase for Chrome, Firefox, Edge, Safari; MV2 and MV3 supported
- Framework-agnostic — React, Vue, Svelte, SolidJS, or vanilla JS/TS; any Vite-compatible framework
- Best-in-class dev mode — auto-opens browser instance, HMR for popup/options pages, fast reload for content and background scripts
- Nuxt-style auto-imports — automatic imports reduce boilerplate across entrypoints
- Full publishing toolchain — automated ZIP, store upload, and Firefox source ZIP generation (required for Firefox reviews)
- Reusable module system — share build-time and runtime code across multiple extension projects
Pros
- Actively maintained — frequent releases, responsive maintainers; explicitly contrasted with Plasmo's maintenance-mode status
- Smaller bundle output — ~400 KB vs Plasmo's ~800 KB in comparable projects; meaningful given store size limits
- Framework-agnostic — React, Vue, Svelte, SolidJS are all first-class citizens with proper HMR
- Superior dev experience — managed browser instance, HMR for UI pages, clean project structure
- Complete publishing toolchain — covers full lifecycle including Firefox source ZIPs that Plasmo does not generate
Cons
- Documentation gaps — some sections marked 'under construction'; newcomers may hit unanswered questions
- No built-in messaging API — unlike Plasmo's @plasmohq/messaging; must use a third-party library or hand-roll
- Background service worker changes trigger full reload, not true HMR
- Dev mode opens a fresh browser instance on each compile by default — requires explicit config for profile persistence
- WebSocket hot-reload connections can occasionally drop, requiring dev server restart
Pricing
Open SourcePossible Stacks
Browser Extension Starter
ProjectA beginner-friendly stack for building cross-browser extensions. WXT handles the Manifest V3 boilerplate and cross-browser packaging; React and TypeScript provide a familiar component model; Supabase adds cloud storage and auth if the extension needs a backend.
Related Tools
Works well with (5)
Learning Resources
No resources yet — check back soon.