# Plasmo

React-first browser extension framework with built-in messaging, storage, and CSUI helpers

https://topboilerplates.com/plasmo

Framework: React | Pricing: freemium | GitHub stars: 13140

## Verdict

Best for: React/TypeScript teams that want a batteries-included, opinionated framework with built-in messaging and storage APIs, plus optional hosted testing/publishing add-ons.

Skip if: Your extension's UI is built in Vue or Svelte as the primary framework, or you'd rather build on Vite than a Parcel-based toolchain.

## Description

Plasmo is a browser extension development framework built by Plasmo Corp, often described as "Next.js for browser extensions." It uses a file-based project structure to scaffold popups, options pages, background workers, and content scripts without manual manifest configuration, and ships built-in APIs for cross-context messaging and storage. The core framework is React and TypeScript-first (with optional Svelte/Vue support), built on a Parcel-based bundler with hot reloading, and targets Chrome, Firefox, and Edge.

## Pros and cons

+ Built-in cross-context messaging and storage APIs remove common extension boilerplate

+ Largest community/star count among the dedicated extension frameworks

+ Content-script UI (CSUI) components are a first-class, documented pattern

+ Optional hosted services (e.g. testing, store submission) if you don't want to self-manage that pipeline

- Framework and paid hosted add-ons are separate - read the pricing page before assuming everything is free

- React is the primary supported framework; Vue/Svelte support is secondary

- Parcel-based build is less customizable than Vite's plugin ecosystem for edge-case bundling needs

## Stack

- TypeScript

## Links

- Website: https://topboilerplates.com/go/plasmo
- GitHub: https://github.com/PlasmoHQ/plasmo

## Alternatives

- [WXT](https://topboilerplates.com/wxt)
- [Extension.js](https://topboilerplates.com/extension-js)
