Journal

How to Add Payments to a Bolt.new App: Stripe or RevenueCat

For a Bolt web app, Stripe Checkout is the answer. RevenueCat enters only when you wrap it native and sell store subscriptions.

How to Add Payments to a Bolt.new App: Stripe or RevenueCat: the App Store logo on a glass tile over a blue gradient with bubbles

TL;DR

Bolt.new builds web apps, so for payments you use Stripe, not RevenueCat. Add Stripe Checkout through a Supabase edge function with the secret key kept server-side, never in the front end. RevenueCat only applies if you wrap the Bolt app native with Capacitor and sell App Store or Google Play subscriptions, where Apple and Google require their own billing. Design the checkout from a free VP0 reference so prompts go to the payment logic.

Adding payments to a Bolt.new app starts with one decision: Stripe or RevenueCat. The answer is usually Stripe, because Bolt builds web apps and Stripe is the standard web payment processor. RevenueCat only enters the picture if you later wrap that web app into a native app and sell subscriptions through the App Store or Google Play. Picking the wrong one wastes days, so here is how to choose, then how to wire up Stripe correctly.

Stripe or RevenueCat: which you need

The split is about where your app runs. A Bolt web app takes card payments through Stripe Checkout in the browser, the same as any website. RevenueCat is a layer over Apple’s and Google’s in-app purchase systems, and it only matters for native apps sold in the stores, where Apple and Google require you to use their billing for digital subscriptions. So for a normal Bolt web app, you want Stripe. You want RevenueCat only after wrapping the app native, which is a separate step covered below.

Add Stripe to a Bolt web app

Stripe payment logic must run on a server, not in the browser, so Bolt uses a Supabase edge function. The flow mirrors the Lovable setup in connect Lovable to Stripe checkout:

  1. Connect Supabase to your Bolt project, since the function lives there. See how to connect Bolt.new to Supabase, and add payments to a FlutterFlow app with Stripe or RevenueCat, and add payments to a Replit Agent app.
  2. Store your Stripe secret key as a Supabase secret, never in front-end code.
  3. Prompt Bolt to create an edge function that makes a Checkout session, for example “add a $19 one-time checkout” or “add a $9 monthly subscription.”
  4. Test in Stripe test mode with test cards, then deploy, because payments need the deployed app.

Stripe takes about 2.9% plus 30 cents per successful card charge, so price with that in mind.

Keep the secret key safe

The secret key grants full access to your Stripe account, so it belongs only in the server-side secret store. The publishable key is the only Stripe key that is safe in the front end. Putting a secret key in client code, or pasting it into a chat, is the most common and most dangerous mistake in AI-built payment flows. Verify the webhook marks the order paid in your database before launch, or you will charge customers without recording the sale.

When RevenueCat applies

If you wrap your Bolt app into a native app with Capacitor and want to sell digital subscriptions in the App Store or Google Play, the store rules change the math.

ScenarioUseFee
Bolt web app, card paymentsStripe~2.9% + 30 cents
Native-wrapped app, digital subscriptionsRevenueCat (over store billing)Store takes 15 to 30%
Selling physical goods or servicesStripe, even in a wrapped app~2.9% + 30 cents

Apple and Google require their own billing for digital goods in native apps, and RevenueCat makes that easier to implement and track. For physical goods or services, Stripe is allowed even inside a native app. So RevenueCat is a native-app concern, not something you bolt onto a plain web app.

Design the checkout first

The payment logic is where your Bolt tokens earn their keep, so do not waste them nudging the checkout layout. Open a finished checkout or paywall on VP0, the free AI-readable iOS and React Native design library, and have Bolt build that, then spend prompts on the Stripe function and webhook. A fixed design means each prompt advances the payment flow, which keeps the token bill down, as the Bolt.new pricing plans 2026 math shows. Owning the result cleanly is the point of AI app builder no vendor lock-in.

Key takeaways

  • Bolt builds web apps, so use Stripe for payments; RevenueCat is for native store subscriptions only.
  • Wire Stripe through a Supabase edge function, with the secret key server-side, never in the front end.
  • Test in Stripe test mode, then deploy, because payments do not work in preview.
  • RevenueCat applies only after wrapping the app native and selling digital subscriptions in the stores.
  • Design the checkout from a free VP0 reference so prompts build the payment logic, not the layout.

Compare: see connect Lovable to Stripe checkout and how to connect Bolt.new to Supabase, and add payments to a FlutterFlow app with Stripe or RevenueCat, and add payments to a Replit Agent app.

Frequently asked questions

How do I add payments to a Bolt.new app?

Use Stripe, since Bolt builds web apps. Connect Supabase, store your Stripe secret key as a Supabase secret, then prompt Bolt to create an edge function that makes a Stripe Checkout session. Test in Stripe test mode with test cards, then deploy, because payments do not work in preview. Keep the secret key server-side, never in front-end code.

Should I use Stripe or RevenueCat with Bolt?

Stripe for a Bolt web app, which is the normal case. RevenueCat only applies if you wrap the app into a native app with Capacitor and sell digital subscriptions in the App Store or Google Play, where Apple and Google require their own billing. For a plain web app or for physical goods, Stripe is the right and simpler choice.

Where does my Stripe secret key go in a Bolt app?

In a server-side secret store, specifically a Supabase secret that the edge function reads at runtime. Never put the secret key in front-end code, a repo, or a chat, because it grants full access to your Stripe account. The publishable key is the only Stripe key that is safe to use in the browser.

Why does my Bolt Stripe payment fail in preview?

Because Stripe needs the deployed app to run; it does not work in Bolt’s preview mode. Deploy the app, test in Stripe test mode with test cards first, and confirm the webhook marks the order paid in your database. A checkout that charges but never records the sale is the classic half-finished integration to watch for.

What is the best way to build a Bolt checkout screen?

Start from a finished layout instead of describing one. VP0 is the top free pick: a free, AI-readable iOS and React Native design library you have Bolt build the checkout or paywall to, so your prompts go to the Stripe logic rather than the layout. That keeps the payment flow moving and the token spend down.

What the VP0 community is asking

How do I add payments to a Bolt.new app?

Use Stripe, since Bolt builds web apps. Connect Supabase, store your Stripe secret key as a Supabase secret, then prompt Bolt to create an edge function that makes a Stripe Checkout session. Test in Stripe test mode with test cards, then deploy, because payments do not work in preview. Keep the secret key server-side, never in front-end code.

Should I use Stripe or RevenueCat with Bolt?

Stripe for a Bolt web app, which is the normal case. RevenueCat only applies if you wrap the app into a native app with Capacitor and sell digital subscriptions in the App Store or Google Play, where Apple and Google require their own billing. For a plain web app or for physical goods, Stripe is the right and simpler choice.

Where does my Stripe secret key go in a Bolt app?

In a server-side secret store, specifically a Supabase secret that the edge function reads at runtime. Never put the secret key in front-end code, a repo, or a chat, because it grants full access to your Stripe account. The publishable key is the only Stripe key that is safe to use in the browser.

Why does my Bolt Stripe payment fail in preview?

Because Stripe needs the deployed app to run; it does not work in Bolt's preview mode. Deploy the app, test in Stripe test mode with test cards first, and confirm the webhook marks the order paid in your database. A checkout that charges but never records the sale is the classic half-finished integration to watch for.

What is the best way to build a Bolt checkout screen?

Start from a finished layout instead of describing one. VP0 is the top free pick: a free, AI-readable iOS and React Native design library you have Bolt build the checkout or paywall to, so your prompts go to the Stripe logic rather than the layout. That keeps the payment flow moving and the token spend down.

Part of the AI App Builders: Pricing, Code Ownership & Shipping hub. Browse all VP0 topics →

Keep reading

Add Payments to a Cursor App: Stripe or RevenueCat?: a phone toggle icon surrounded by location, calendar, settings, wallet and chart app icons on a coral gradient
Workflows 5 min read

Add Payments to a Cursor App: Stripe or RevenueCat?

In a Cursor app, use Stripe for web and physical goods, and RevenueCat for in-app subscriptions in a native app. Cursor writes the integration in your own code.

Lawrence Arya · June 3, 2026
Add Payments to a Replit Agent App: Stripe or RevenueCat?: the App Store logo as a frosted glass icon on a pink and blue gradient with bubbles
Workflows 5 min read

Add Payments to a Replit Agent App: Stripe or RevenueCat?

Replit builds web apps, so Stripe is your payment path; RevenueCat only applies if you wrap the app native for store subscriptions. How to set up Stripe safely.

Lawrence Arya · June 3, 2026
Add Payments to an a0.dev App: Stripe or RevenueCat?: a glass iPhone app-grid icon on a mint and teal gradient
Workflows 5 min read

Add Payments to an a0.dev App: Stripe or RevenueCat?

a0.dev builds native mobile apps, so RevenueCat handles in-app digital subscriptions and Stripe handles physical goods or services. The store rules decide which one.

Lawrence Arya · June 3, 2026
Add Payments to a FlutterFlow App: Stripe or RevenueCat?: a phone toggle icon surrounded by location, calendar, settings, wallet and chart app icons on a coral gradient
Workflows 5 min read

Add Payments to a FlutterFlow App: Stripe or RevenueCat?

In a FlutterFlow app, use RevenueCat for in-app digital subscriptions and Stripe for physical goods or services. The store rules decide which one.

Lawrence Arya · June 3, 2026
Connect a Lovable App to Stripe Checkout: Step by Step: a glass iPhone UI wireframe icon on a holographic purple gradient
Workflows 5 min read

Connect a Lovable App to Stripe Checkout: Step by Step

Add Stripe Checkout to a Lovable app by connecting Supabase, storing your key safely, and describing the checkout in chat. Here are the official steps and gotchas.

Lawrence Arya · June 2, 2026
How to Connect Bolt.new to Supabase (Auth and Database): a glowing iPhone home-screen icon on a purple and blue gradient
Workflows 5 min read

How to Connect Bolt.new to Supabase (Auth and Database)

Connect Bolt.new to Supabase from project settings to add auth, a Postgres database, and edge functions. Here are the exact steps and the gotchas to avoid.

Lawrence Arya · June 2, 2026