Skip to content
Get the kit

Setup

Five steps take you from a clone to a signed-in extension that takes a test payment, about 10 minutes in all. The wizard in step 4 does the setup work: it configures your clone, creates your Firebase or Supabase project, and sets up payments. The few console clicks no CLI can do, it prints as a checklist with a link into the right screen for each. Every step ends with something you can see on screen.

You need:

  • The GitHub invite accepted. It arrives after purchase, on the GitHub account you gave. The extensionstart/starter page shows a 404 until you accept it from the email or at github.com/notifications.
  • Chrome, Node 22.12 or newer, pnpm 11 or newer (npm install -g pnpm; it switches to the version the repo pins), and git.

Two accounts, one for each choice you make in the wizard:

  • Backend: a Google account for Firebase, or a Supabase account. The kit defaults to Firebase. Deploying the API needs Firebase’s Blaze plan, which asks for a card; the free tier covers development.
  • Payments: a Stripe, Polar, or Paddle account, in test mode. The kit defaults to Stripe. Have its test key ready; the wizard asks for it (which key).
Terminal window
git clone https://github.com/extensionstart/starter.git my-extension

my-extension is the folder name; pick any.

Terminal window
cd my-extension
Terminal window
pnpm install

If it stops with ERR_PNPM_UNSUPPORTED_ENGINE, your pnpm is older than 11. Run npm install -g pnpm, then pnpm install again.

The wizard creates your Firebase project through this CLI.

Terminal window
npm i -g firebase-tools
Terminal window
firebase login --reauth

The --reauth flag works on a first login too, and it renews one that has expired.

Terminal window
pnpm create extstart

It asks for a name, a color palette, a backend, whether to add a side panel, when to ask for sign-in, a billing model, a payment provider, and a paywall recipe. Enter accepts the default on every question. Then it applies your answers and offers the two setup steps:

  • Create the Firebase project now? Enter creates the project, writes its config into the repo, and prints the console checklist: enable Google sign-in, upgrade to the Blaze plan, point the OAuth client at your extension. Each item comes with a link into the right screen.
  • Create the Supabase project now? On Supabase instead: Enter creates the project, writes its URL and key into .env, applies the schema, deploys the API, switches on the auth settings, and prints the one step left, a Google OAuth client.
  • Set up payments with stripe now? Enter asks for your provider’s test key and does the rest: products, webhook, and on Firebase the deploy and the doctor. On Supabase the secrets land in your project and the API is checked; there is nothing to deploy.

Every question, the checklist, and what happens when a step stops: Setup wizard.

Terminal window
pnpm dev

WXT builds to apps/extension/.output/chrome-mv3-dev and watches for changes. It does not open the browser. Open chrome://extensions, turn on Developer mode (top right), click Load unpacked, and select apps/extension/.output/chrome-mv3-dev. Pin the icon from the puzzle-piece menu.