Prism Studio is a fictional app showing vantezzen/pay end to end. Checkout runs in Stripe test mode — pay with 4242 4242 4242 4242, any future expiry, any CVC.

Your renders

This session

Nothing here yet

Describe a scene and generate — your wallet was created automatically, with free images every month.

Under the hood

The entire billing layer on this page

Balance & wallet

// app header
<RemainingCredits />
<WalletButton />

Metered usage

const { deduct } = useCredits();

async function generate() {
  await deduct(1, {
    idempotencyKey: crypto.randomUUID(),
  });
  render();
}

<CreditGate cost={1}>
  <Button onClick={generate}>Generate</Button>
</CreditGate>

Gated access

const pro = useFeature("pro");

<FeatureGate feature="commercial-license">
  <LicenseBadge />
</FeatureGate>

No webhook handlers, no callback pages, no server code. Read the quickstart or view this page's source.