# Overview

> Sell a browser extension with accounts, licences and subscriptions on your own Stripe account.

Toolaby is a hosted service for selling browser extensions. It runs sign-in, the Free plan, licences, subscriptions, trials and the pages a buyer sees. Payments run on your Stripe account through Stripe Connect. On the Hobby plan Toolaby takes 0.5% of each sale as an application fee; Pro costs $25 a month per workspace and takes no fee. See [Plans](https://toolaby.app/docs/plans.md).

Your extension includes the client, one file: `toolaby.js`. The client asks Toolaby 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/dev`, and `toolaby.app/test/dev` on Test       | 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.                                   |
| Toolaby 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                                                 | Nine events about money, access and uninstalls; seven endpoints to look up, grant and revoke access and read Analytics. |

## Get started

* [Quickstart](https://toolaby.app/docs/quickstart.md) — register a tool, wire an extension, make a test purchase.
* [Gate your extension](https://toolaby.app/docs/gating.md) — where `gate()`, `has()` and `showPaywall()` go.
* [Ship to the Chrome Web Store](https://toolaby.app/docs/ship.md) — from Test to a published store copy, and updates.
* [Troubleshoot an extension](https://toolaby.app/docs/troubleshooting.md) — every message, its cause and its fix.
* [Command line](https://toolaby.app/docs/cli.md) — `npx -y toolaby@latest wire`, `create` and `pack`.
* [Build with an agent](https://toolaby.app/docs/agents.md) — the files, the MCP server and `check` for coding agents.
* [Migrate existing customers](https://toolaby.app/docs/migrate.md) — from Stripe or from a file.
* [Frameworks](https://toolaby.app/docs/frameworks.md) — WXT, CRXJS, Plasmo and other bundlers.

## Concepts

* [How it works](https://toolaby.app/docs/how-it-works.md) — every request the extension makes and what it means.
* [Test and Live](https://toolaby.app/docs/test-and-live.md) — two environments, two keys.
* [Pricing](https://toolaby.app/docs/pricing.md), [Subscriptions](https://toolaby.app/docs/subscriptions.md), [Access and features](https://toolaby.app/docs/free-plan.md), [Versions](https://toolaby.app/docs/versions.md), [Bundles](https://toolaby.app/docs/bundles.md), [Seats](https://toolaby.app/docs/seats.md).
* [Plans](https://toolaby.app/docs/plans.md) — Hobby and Pro, Toolaby's own plans for your workspace.

## Your website

* [Your website](https://toolaby.app/docs/own-site.md) — connect your site: your domain, a proxy, or development.
* [Website components](https://toolaby.app/docs/web-components.md) — `<toolaby-user>` and the `data-toolaby-*` attributes.
* [Website JavaScript](https://toolaby.app/docs/web-javascript.md) — `window.Toolaby`, React and Next.js.

## Reference

* [Client](https://toolaby.app/docs/reference/client.md) — every method of `toolaby.js`.
* [Objects](https://toolaby.app/docs/reference/objects.md) — `User`, `Permit` and the shapes inside them.
* [Webhooks](https://toolaby.app/docs/reference/webhooks.md) — the nine events and their payloads.
* [API](https://toolaby.app/docs/reference/api.md) — the REST endpoints.
* [Sync customers](https://toolaby.app/docs/sync.md) — a customers table on your server, kept current.

## Operating

* [Your data](https://toolaby.app/docs/your-data.md) — where buyer data lives and how you keep a copy.
* [Testing](https://toolaby.app/docs/testing.md) — produce every outcome on Test.
* [Limits](https://toolaby.app/docs/limits.md), [Changelog](https://toolaby.app/docs/changelog.md).
