Overview
Sell a browser extension with accounts, licences and subscriptions on your own Stripe account.
The Wall is a hosted service for selling browser extensions. It runs sign-in, the free tier, licences, subscriptions, trials and the pages a buyer sees. Payments run on your Stripe account through Stripe Connect; the Wall takes a percentage of each sale as an application fee.
Your extension includes a client library of a few hundred lines. The client asks the Wall whether the device may use the tool and receives a signed token in reply, which it verifies on the device. Your code calls toolaby.gate() before the thing it charges for, and toolaby.showPaywall() when it refuses.
How it fits together
| Part | Where it runs | What it does |
|---|---|---|
| Dashboard | toolaby.app | Register tools, set prices, see customers, refund, grant access. |
| Buyer pages | <workspace>.toolaby.app, or your domain | Sign-in, checkout, the buyer's account. In your brand and the buyer's language. |
| Client | Inside your extension | Answers getUser() and gate(), opens the pages, keeps the entitlement token fresh. |
| Wall popup | Inside your extension, in front of your popup or on request | Shows the paywall when the device may not continue; opens your popup when it may. |
| Account bar | Inside your popup and side panel | Who is signed in, their plan, their account, sign out. |
| Website script | Your website | The account button, content by what the buyer owns, checkout and trials on your own pages. |
| Webhooks and API | Your server | Six events about money and access; four endpoints to look up and grant access. |
Get started
- Quickstart — register a tool, wire an extension, make a test purchase.
- Gate your extension — where
gate(),has()andshowPaywall()go. - Ship to the Chrome Web Store — from Test to a published store copy, and updates.
- Troubleshoot an extension — every message, its cause and its fix.
- Command line —
npx -y toolaby@latest wire,createandpack. - Migrate existing customers — from Stripe or from a file.
- Frameworks — WXT, CRXJS, Plasmo and other bundlers.
Concepts
- How it works — every request the extension makes and what it means.
- Test and Live — two environments, two keys.
- Pricing, Access and features, Versions, Bundles, Seats.
Your website
- Your website — connect your site: your domain, a proxy, or development.
- Website components —
<toolaby-user>and thedata-toolaby-*attributes. - Website JavaScript —
window.Toolaby, React and Next.js.
Reference
- Client — every method of
toolaby.js. - Objects —
User,Permitand the shapes inside them. - Webhooks — the six events and their payloads.
- API — the REST endpoints.
- Sync customers — a customers table on your server, kept current.