Catalog through checkout
Add a product catalog and checkout to your React app.
BTST adds CMS-backed products, variants, stock, persistent carts, checkout adapters, and order management inside your app while your payment provider processes payments.
Best for
Teams adding a shop or purchase flow to an existing React application while keeping catalog and order records in their database.
- Requires
- CMS plugin; A BTST database adapter with isolated transactions
- External service boundary
- A payment provider such as Stripe or Lemon Squeezy
- Ownership boundary
- You manage CMS product content, customer and administrator access, provider credentials, and webhooks. Your configured payment provider processes payments, while the plugin manages checkout and order records.

BTST supplies
- CMS-backed catalog with variants, inventory, and image galleries
- Persistent cart, checkout handoff, signed payment webhooks, and order management
You supply
- A BTST database adapter with isolated transactions
- Payment provider credentials and webhook registration
- Customer identity and administrator authorization rules
You own and customize
You manage CMS product content, customer and administrator access, provider credentials, and webhooks. Your configured payment provider processes payments, while the plugin manages checkout and order records.
Compatibility and dependencies
- Maintained integrations
- Next.js 15+ App Router · React Router v7 · TanStack Start
- Requires
- CMS plugin; A BTST database adapter with isolated transactions
- External services
- A payment provider such as Stripe or Lemon Squeezy
From registration to result
The shipped workflow
This is the feature path BTST supplies—not a claim that your app needs no integration work.
Prepare the catalog
Register the CMS product type, then add products, images, variants, and inventory.
Connect payments
Configure a supported or custom payment adapter and register its signed webhook endpoint.
Accept and manage orders
Let customers build a cart and continue to the payment provider, then manage verified orders inside your app.
Continue your task