Build an extension people pay for
A starter kit for browser extensions that charge money: sign-in that survives the popup closing, Stripe billing verified on the server, and a paywall designed to pass Chrome Web Store review. You write your feature. The rest is done and tested.
- 411 unit tests
- 12 e2e specs
- Chrome · Firefox · Edge
- One-time purchase
Sign in
Create account · Forgot password?
Signing in with Google…
Upgrade to Premium
Processing payment…
Stripe Checkout → webhook → entitlements
Subscription active
Welcome to Pro! Premium features are unlocked everywhere.
Pro- React
- WXT
- TypeScript
- Tailwind CSS
- Astro
- Firebase
- Hono
- Chrome Web Store
- Claude Code
- Codex
What you get
The codebase, not a template
Every subsystem you would otherwise build yourself, and the actual repository it lives in: a pnpm + Turborepo monorepo with framework-free core packages, a real backend, and tests at every layer.
-
Stack
WXT + React 19 + TypeScript strict + Tailwind 4, in a pnpm + Turborepo monorepo.
-
Authentication
Google sign-in that works in MV3, on Firebase Auth with anonymous-first account linking.
-
Payments
Stripe checkout with webhook-written entitlements. Ready-to-seed billing models: subscription, lifetime, subscription + credits, and prepaid credit packs.
-
Landing page & docs
A rebrandable Astro landing site plus store-ready legal pages, llms.txt, and markdown docs.
-
AI coding agents
AGENTS.md guardrails and a chrome-devtools MCP preset for live-Chrome debugging.
- extensionstart/
- apps/extension/ WXT + React 19 + Tailwind 4 extension app
- entrypoints/background/ modular service worker: auth, billing, gates, broadcasts
- entrypoints/popup/ · sidepanel/ · welcome/ UI surfaces sharing one design system
- entrypoints/content/ shadow-DOM UI: status bar, gate walls, highlighter demo
- entrypoints/offscreen/ Chromium auth fallback (signInWithPopup)
- utils/ typed messaging, shadow-ui mount, settings store, page bridge
- e2e/ 12 Playwright specs against the real built extension
- packages/core-ext/ MV3 lifecycle primitives: stores, alarms, messaging, migrations
- packages/core-auth/ auth strategies: web-auth-flow, offscreen, anonymous linking
- packages/core-billing/ entitlement snapshots + useEntitlement('paid')
- packages/gate/ monetization gate engine + CWS-policy-safe presets
- packages/ui/ Button / Card / Dialog / Toast primitives (CVA + Base UI)
- backend/functions/ one Hono app on Cloud Functions: checkout, webhooks, gate events
- tooling/create/ create-extstart setup wizard
- tooling/cli/ module pruner: strip the features you don't need
- docs/ subsystem guides: auth, billing, gates, security, QA
- AGENTS.md AI-agent instructions (Claude Code / Cursor ready)
Workflow
Setup is one command
The wizard brands the extension, wires sign-in and billing, connects Firebase and Stripe, and a tag push ships store-ready builds.
AI agents
Built for AI coding agents
Point an agent at the repo and it works inside the same guardrails you do.
- One AGENTS.md, every agent Architecture map, verified MV3 pitfalls, the definition of done, and tested prompts for the common jobs. CLAUDE.md and the Cursor rules are symlinks to it.
- Agents verify in a live Chrome A preconfigured chrome-devtools MCP server: read the service worker console, screenshot the popup, click through a gate wall.
- Docs agents can fetch The docs site publishes llms.txt and every guide as plain markdown, readable by URL.
Works with Claude Code Codex Cursor
> Add a summarize-page feature behind the paywall
● Reading AGENTS.md: architecture map, MV3 pitfalls
● Scaffolding components/SummarizePage.tsx
● Wiring the gate: gateFeature("summarize-page")
● Verifying in live Chrome via chrome-devtools MCP
$ pnpm typecheck && pnpm lint && pnpm e2e
✓ All green. Ready for review.
Roadmap
One license, every stack we ship. React + Firebase + Stripe today; Supabase, Vue, and Svelte variants are planned.
Pricing
Pay once. Ship as many extensions as you like.
A one-time purchase, not a subscription. You get the private repository, every future update, and a 30-day money-back guarantee.
ExtensionStart
Launch pricing
$99
$189
One-time payment
- 1 developer seat private GitHub repository access
- Unlimited personal projects commercial use allowed
- Lifetime updates pay once, every release included
Frequently asked questions
What exactly do I get when I buy?
Access to the private GitHub repository with the full ExtensionStart monorepo: the WXT + React 19 extension app, the core packages (auth, billing, gate engine, MV3 primitives, UI kit), the Stripe billing backend for Firebase Cloud Functions, the create-extstart setup wizard with a module pruner, the complete test suite (411 unit tests and 12 Playwright e2e specs), CI workflows, and the documentation.
Is this a subscription?
No. ExtensionStart is a one-time purchase. You pay once and keep access to the repository. (Your own extension can charge subscriptions: the Stripe billing that ships in the kit supports monthly, yearly, lifetime, and credit-based plans.)
What is the license?
A per-developer commercial license: build and ship as many extensions as you like, closed-source and for profit. What you cannot do is resell, redistribute, or open-source the boilerplate itself as a starter kit. Read it at extensionstart.com/license/.
How long do I get updates?
Updates land in the same repo you bought, and browser-breakage fixes are prioritized. If the product is ever discontinued, the final source stays yours to keep. Details at extensionstart.com/updates/, and the changelog is the public proof of what has shipped.
What is the refund policy?
A 30-day money-back guarantee, no questions asked. If the kit is not what you expected, email support@extensionstart.com within 30 days of purchase and you get a full refund. The full policy is at extensionstart.com/refunds/.
Which browsers are supported?
Chrome and Edge (MV3), plus Firefox: the build produces per-browser bundles, Chromium-only APIs like the side panel and offscreen documents are feature-guarded, and CI lints the Firefox build with web-ext on every commit.
Do I have to use Firebase?
Firebase (Auth + Firestore + Cloud Functions) is the supported, wired-up path, and it keeps the backend on a generous free tier. The billing core is deliberately port-based (StripeGateway, EntitlementStore, ClaimsWriter interfaces), so adapting it to another backend is a contained task rather than a rewrite, but you would be doing that adaptation yourself.
How does the billing work under the hood?
Stripe Checkout and the customer portal, driven by a Hono API on Cloud Functions. Webhooks write entitlements server-side; the extension reads a storage-backed snapshot and renders state. Clients can never grant themselves paid features. The server is the authority.
Does it work with AI coding agents?
Yes. The repo is built to be worked on by agents: a single AGENTS.md (symlinked as CLAUDE.md and Cursor rules) encodes the architecture map, the MV3 pitfalls, and the definition of done, six tested agent recipes ship in .claude/commands, and a chrome-devtools-mcp preset lets an agent debug a live Chrome.
What if I get stuck?
Start with the docs at extensionstart.com/docs: every subsystem (auth, billing, gates, content scripts, security) has its own guide. For anything else, email support@extensionstart.com.
Sign-in, billing, and store policy are done. Yours is the product on top.
One-time purchase. 30-day money-back guarantee.