Skip to content

WXT

WXT packages your code as an add-on that runs inside a browser. It can build a small panel that opens from the browser toolbar.

Visit WXT

What can WXT package for a browser?

WXT bundles the files for an extension. A toolbar panel can show controls of its own. Other extension code can run in a page if your project declares the access it needs.

A manifest is the file that tells the browser what the extension contains and what it can access. WXT generates it from the project. Check the generated file for each browser you intend to support.

How can you plan a first extension without accessing sites?

Sketch a toolbar panel with one fictional reminder, “Check the sample receipt.” The reminder should stay in that browser profile after you close and reopen the panel.

  1. Draw the toolbar panel
    Give it a field and a Save button. This exercise needs no page access, browsing history, account or outgoing requests.
  2. List the one permission you need
    Use the extension’s local storage for the reminder. The manifest should request the storage permission and have no site access for this design.
  3. Plan a check on an owned page
    Start with the paper sketch. If you later build it, inspect the code and manifest before loading it in a disposable browser profile on a blank local page you control. Check that the reminder returns after reopening the panel. Leave the exercise on paper if the access or network behavior is uncertain.

Why should you check each browser package?

WXT can build separate packages for different browsers and manifest versions. The browser and manifest version you target affect which capabilities you can use.

Use a supported build environment. The current package lists Node 22 or newer for a Node setup, or Bun 1.2 or newer for a Bun setup. Check what your target browser accepts before relying on the default build.

What does it cost to distribute the extension?

The WXT package uses the MIT license. Its local build creates the extension files. Distribution follows the store rules for the browsers you support.

First-time store publishing involves a listing and review. Chrome’s developer registration has a one-time fee. If the extension also calls your own service, you pay for and operate that service separately. A toolbar reminder stored only in the browser does not need an app server.

What do you keep so you can rebuild it later?

Keep the extension source, configuration and package lockfile. Record which browser and manifest version each release targets.

Browser-local reminders are stored in the browser, separately from the code. Plan a separate transfer or export feature if readers need to move that data.