Launch Playbook

Add Stripe Subscriptions to a Fabricate App

Launch Playbook · Bill customers every month.

A one-time payment is a sale. A subscription is a business. This playbook puts the members-only part of your app behind a monthly plan, using the same Stripe Checkout as one-time payments. Your app asks Stripe whether each member is paid up, so there is no webhook to register. About 30 minutes end to end.

Author
By Fabricate Team
Last updated
Updated October 25, 2026
Reading time
6 min read
Key takeaways
  • A subscription is the same Stripe Checkout as a one-time payment, in subscription mode. You don't create a product or price in Stripe first: the app sends the plan's name, amount and interval with each checkout.
  • Your app saves each member's subscription and asks Stripe for its status before serving members-only pages, remembering the answer for a few minutes. There is no webhook to register.
  • "active" and "trialing" count as paid up. Anything else, such as past_due or canceled, closes the members-only pages.
  • There is no self-serve billing page inside the app: members contact you to cancel, and you do it in the Stripe dashboard.
Table of contents

What you'll ship

A "Subscribe" button that opens Stripe's hosted checkout in subscription mode, a members-only part of your app, and a check that keeps it honest: before serving a members-only page, your app's server asks Stripe whether that member's subscription is still active, and remembers the answer for a few minutes.

There is no billing screen inside your app. Members who want to cancel contact you, and you cancel in the Stripe dashboard; the app sees the change at its next check.

Before you start

You need the one-time checkout working first, with your Stripe test key connected under More > Payments. See the previous playbook, "Add Stripe to a Fabricate App in 30 Minutes". The same key covers subscriptions.

Note

If your app already has sign-in, subscriptions attach to each member's account. If not, ask for sign-in in the same prompt: Fabricate adds email and password accounts when the app needs them.

Step 1 · Ask for the membership (5 min)

Describe the plan in your Fabricate chat: its name, its price, monthly or yearly, and what members get.

Tip

Want yearly billing too? Ask for "$190 a year as well, with a Monthly / Yearly switch". Each interval is its own checkout, and nothing needs setting up in Stripe.

Prompt to send to Fabricate
Add a "Pro membership" at $19 USD a month. Signed-in users get a Subscribe button on /pricing that opens Stripe Checkout in subscription mode. Save the subscription on the member's account, and only show the /members pages to members whose subscription is active or trialing.
Fabricate adds the subscription checkout, saves the subscription on the member's account once Stripe confirms the payment, and puts the members pages behind a status check against Stripe that is remembered for a few minutes.

Ready to build?

Describe your app in a few sentences and Fabricate builds it. Free to start.

Start building free

Step 2 · Test it in the preview (10 min)

Open the preview, sign in as a test member and click Subscribe. Stripe's page opens in a new tab. Pay with card 4242 4242 4242 4242, any future expiry date and any CVC.

Back in the app, the members pages open once the server has confirmed the payment with Stripe. In the Stripe dashboard (test mode), the subscription appears under Subscriptions.

Step 3 · Test a cancellation (5 min)

In the Stripe dashboard, open the test subscription and cancel it immediately. Within a few minutes the members pages close for that member, because the app's next status check sees "canceled".

Important

If the members pages stay open long after cancelling, the status check is missing or remembered too long. Ask Fabricate: "Check the member's Stripe subscription status before serving /members, remembered for at most five minutes."

Step 4 · Go live (5 min)

Add your live secret key under More > Payments and publish again: a live key reaches only the published app, from its next publish. You don't re-create products, prices or webhooks in live mode, because the app sends each plan with every checkout. Test subscriptions stay in Stripe's test mode and never charge anyone.

Ready to build?

Describe your app in a few sentences and Fabricate builds it. Free to start.

Start building free

Gotchas worth knowing

A short list of the things that come up the week after launch:

• Grace period. When a renewal fails, Stripe retries the card before cancelling, and the subscription is past_due meanwhile. Fabricate counts only active and trialing as paid up; if you'd rather keep access during the retries, ask for past_due to count too.

• Cancelling and card problems. There is no self-serve billing page in the app. Say on your members page how to reach you, and handle cancellations and failed cards in the Stripe dashboard.

• Tax. Stripe Tax can work out EU VAT and US sales tax; you switch it on and set it up in the Stripe dashboard.

• Refunds. Refunds happen in the Stripe dashboard, not in your app.

What's next

You're billing members every month. Two natural follow-ons:

• Offer more than one plan. Prompt: "Add Basic at $9 a month next to Pro at $19, each unlocking its own pages." Each plan is its own subscription checkout.

• Show members their plan. Prompt: "Add an account page that shows the member's plan, its status from Stripe, and how to contact us to cancel."

Ready to build?

Describe your app in a few sentences and Fabricate builds it. Free to start.

Start building free

Frequently Asked Questions

Do I need a Stripe webhook?
No. A Fabricate app asks Stripe directly: after checkout it confirms the payment, and before serving members-only pages it checks the subscription's status, remembering the answer for a few minutes so most requests never wait on Stripe. There is nothing to register in the Stripe dashboard and no signing secret to keep.
Can members cancel or change their card themselves?
Not inside the app: Fabricate apps don't include a self-serve billing page. Members contact you, and you cancel the subscription or sort out the card in the Stripe dashboard. The app sees a cancellation at its next status check.
Can I run subscriptions and one-time products on the same app?
Yes. Both go through the same checkout: one-time items use payment mode, and memberships use subscription mode.
How do I move from test mode to live?
Add your live secret key under More > Payments, then publish again. The live key reaches only the published app, and the preview keeps the test key. Nothing needs re-creating in Stripe, because each checkout carries its own plan name and price.
Which Fabricate plan do I need?
Connecting Stripe needs Pro or Max. Current plans are on the pricing page at fabricate.build/pricing.