Most app ideas die at the same spot: the moment money gets involved. Building a landing page is easy. Wiring up a real checkout, keeping payment records safe, and knowing who actually paid is where side projects stall.
This post walks through doing all of it with Instroc, from a blank prompt to a published app that charges customers. No code, no copying API keys, no backend setup.
What you'll end up with
- A working app with signup and login built in
- A checkout flow that charges customers through your own Stripe account
- Payment records stored in your app's own database, visible only to the customer who paid and to you
- A live URL you can share
The example here is a simple premium membership app, but the same steps apply to selling a digital product, a booking deposit, or a one-time service fee.
Step 1: Describe the app
Start a new project and describe what you want in plain language:
A membership site for my running club. Visitors can read the public schedule. Members pay a one-time fee to unlock the training plans page. People need to create an account before they can pay.
Roc, the builder, asks a few follow-up questions about style and flow, then generates the app: pages, navigation, a database for members and content, and login. You watch it come together in the live preview and steer with follow-up messages, the same way you would give feedback to a designer.
The important part for payments: the app requires an account before checkout. That is what lets the app know, later, exactly who paid.
Step 2: Connect your Stripe account
In the project's integrations panel, choose Stripe and click connect. You are sent to Stripe, you approve the connection, and you are sent back. That's it.
Two things worth pausing on:
You never handle API keys. Many tools ask you to open the Stripe dashboard, dig out a secret key, and paste it into a chat box or a settings form. A secret key is exactly what it sounds like. If it leaks, someone can act on your Stripe account. Instroc uses Stripe's own account connection flow instead, so there is no key to find, paste, or leak.
The money goes to you. Payments are made against your Stripe account, not ours. Payouts, refunds, and receipts all live in your Stripe dashboard like any other business you run on Stripe.
If you don't have a Stripe account yet, Stripe's signup takes a few minutes and works in test mode immediately, so you can build and test before your account is fully activated.
Step 3: Add the checkout
Back in the chat:
When a logged-in member clicks "Unlock training plans", charge them 150 kr as a one-time payment. After they pay, show them the training plans page.
Roc wires the button to a checkout flow. The customer clicks, lands on a Stripe-hosted payment page, pays, and is sent back to your app with the premium content unlocked.
What happens behind the scenes
You don't have to think about this part, but it is worth knowing what you get:
- Every payment is recorded in your app's own database, tied to the account of the person who paid.
- Payment records are private by default. A logged-in customer can see their own payment and nothing else. You, as the owner, can see all of them in the project's data view.
- The app can react to payments. "Show a Pro badge to anyone who has paid" is a one-sentence follow-up, because the app can actually query who has paid.
That last point matters more than it sounds. A checkout button is easy to bolt on anywhere. An app that knows who paid, and changes what it shows accordingly, is the difference between a payment link and a product.
Step 4: Test it
Use Stripe test mode and the classic test card, 4242 4242 4242 4242. Create a second account in your app, pay, and confirm:
- The premium page unlocks for the paying account
- The payment shows up in your Stripe dashboard
- A second, non-paying account still sees the locked page
Step 5: Publish
Click publish. Your app goes live on a shareable URL, and you can attach your own domain, including buying one right inside the project if you don't have one yet.
When you are ready for real money, switch your Stripe connection to live mode and the same flow charges real cards.
Common questions
Do I need to know what a webhook is? No. Payment confirmation is handled for you. By the time the customer is back in your app, the record is on its way to your database.
Can customers see each other's payments? No. Data in Instroc apps is private by default. Each customer sees only their own records unless you explicitly make something public.
What about subscriptions? Recurring billing works through the same Stripe connection. One-time payments are the simplest starting point, which is why this guide uses them.
Try it
Describe your app in a sentence and see how far one prompt gets you. Start building on Instroc, free to start.