Drop pricing, subscribe, invoices, and checkout into any page. Eight widgets in @aforoai/storefront-widgets, three integration tiers, one shared bridge.
Embed Widgets is the tier between "use our hosted Storefront as-is" and "build your own UI on the headless API." You ship a script tag (or an npm import), drop one of eight web components into your page, and the widget handles pricing display, subscribe, invoices, checkout, and subscription management against your Aforo tenant. Your brand, your domain, our billing.
Customers who already have a marketing site, web app, or admin console, and want billing UI to live inside it. The widgets are framework-agnostic (script tag works anywhere), but ship React and Vue adapters as first-class. Auth uses a short-lived bridge token your backend mints for the signed-in customer — the widget itself never sees your Aforo API key.
Each widget is a self-contained surface with locked props and emitted events. Click into the reference page for code samples, the full prop list, and the event payload spec.
Phase-1 widgets that aren't yet shipped (account profile, dunning surface, etc.) are listed on the page so search + external links don't 404.
Bridge tokens are short-lived (typically minutes) and customer-scoped. Your backend mints them with your Aforo embed key + the customer's id — the widget never sees your key directly. has the mint snippet for Node, Python, Go, and Java.
Hosted Storefront vs. Embed Widgets vs. Headless API
Three ways to put Aforo billing in front of a customer. Embed Widgets is the middle tier: more flexible than the hosted Storefront (your page, your domain), less work than building from the Headless API (we own the components).