Skip to content
Get the kit

Documentation

Introduction

Welcome to the ExtensionStart documentation. This is the place to get started with the kit, learn how the parts fit together, and ship a paid browser extension on Chrome, Firefox, and Edge.

ExtensionStart is a starter kit for browser extensions that charge money. You get a monorepo where sign-in, billing, paywalls, on-page UI, and store publishing are already built, wired together, and covered by 190+ unit tests and 21 end-to-end specs. It contains:

  • The extension app: popup, side panel, and on-page UI, built on WXT, React 19, and Tailwind 4.
  • The backend: one API for checkout, webhooks, usage counters, and sign-out, deployable to Firebase or Supabase.
  • Your product website: a rebrandable landing page, a help center, the welcome page every install opens, and the privacy and terms pages the Chrome Web Store requires.
  • Stripe, Polar, or Paddle behind one billing port
  • Subscriptions, lifetime purchases, trials, and credit packs
  • Entitlements written only by webhooks; the extension holds no secrets
  • Three questions, one file: what is free, what is on trial, when to ask
  • Feature limits per day or month, no-card trials, credits, and a nudge policy; six recipes, any mix
  • One access call at every callsite; the wall, lock badge, usage meter and trial banner render everywhere
  • Store-policy guard in the config: a free path or a declared paid-only product, prompts always dismissible
  • Shadow and inline mounting on any website
  • Survives SPA navigation and hostile host styles
  • A status card demo on every page, end-to-end tested against hostile CSS, that one wizard answer removes

The wizard asks how you want to charge and configures pricing UI and paywall behavior to match:

ModelYou sell
Subscription (default)Monthly, yearly, and lifetime plans, optional free trial
LifetimeOne payment, access forever
Subscription + creditsMonthly credit allowance plus top-up packs
Credit packsPrepaid credits, no subscription

Each step ends with something you can verify on screen:

  1. Setup: clone, run the wizard, load the extension in Chrome, sign in with your own backend, then a test checkout that flips the popup to Pro.

  2. Build your feature: your code, made paid with a 2-file edit.

  3. Publish: the Chrome Web Store submission runbook.

Both of these readers, deliberately:

  • Building with an AI agent, or new to extensions? Follow the path above in order; every step says what to click and what you should see. The kit’s guardrails were written so an agent can do the heavy lifting; start at Build with AI agents.
  • Senior engineer? The Tech stack explains every choice, Project structure maps the repo, and each feature folder documents the invariants the kit enforces. The platform rules that make extensions different from web apps (service workers, permissions, store policy) are covered where they bite.

A commercial starter kit for monetized browser extensions: a pnpm workspace monorepo with the extension app, a deployable backend, a website with a help center, and the test suites that keep them honest.

No. The kit encodes the MV3 rules (service-worker lifecycle, storage, permissions, store policy) in working code and enforces them with lint rules and tests. The docs explain each rule where it matters.

Which backends and payment providers are supported?

Section titled “Which backends and payment providers are supported?”

Firebase or Supabase for the backend, chosen in the wizard. Stripe, Polar, or Paddle for payments, also chosen in the wizard: your clone keeps the provider you pick, next to Stripe. Polar and Paddle act as merchant of record and handle global sales tax.

Your purchase includes lifetime updates: pull from the private repository. Storage shapes are versioned with numbered migrations, so updating never corrupts your users’ data.