WXT

WXT

Open Source

Next-gen Web Extension Framework.

Frontend Frameworks
Browser Extension Frameworks

Scores

Popularity
3/5
Learning Curve
2/5
Flexibility
4/5
Performance
4/5
Portability
3/5

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 Source

Possible Stacks

Browser Extension Starter

Project

A 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.

Programming

Databases

Authentication

Sandbox

Related Tools

Learning Resources

No resources yet — check back soon.

Tags

JavaScriptTypeScriptOpen SourceFree TierWeb DevelopmentWebCross-platformComponent-based

Details

License
MIT
Maintained
Yes
Primary language
TypeScript
Domain
Frontend
GitHub stars
9.4k
Stars updated
2026-03-24