In-app subscription development
Subscriptions that agree in the app, on the web, and on your server.
Acasa Labs does in-app subscription development for iOS and Android apps: StoreKit and Google Play Billing through RevenueCat, paywalls, trials, and entitlements your backend can trust. NoteTube bills with RevenueCat in its apps and Stripe on the web, with a scheduled job that reconciles the two. GymFast's apps use RevenueCat too.
The problem
Taking money in an app has more rules than building the app.
Apple and Google require their own billing for digital goods sold inside apps, each with its own products, receipts, renewals, grace periods, and refunds. Then there is your website, which may bill through Stripe or Razorpay. A user who pays on one and opens the other expects access. Without one source of truth, you get support tickets from people who paid and are locked out, and quiet losses from people who cancelled and still have access.
What we build
- 01
Store billing, set up properly
Products, subscription groups, trials, and introductory offers in App Store Connect and Google Play Console, wired through RevenueCat.
- 02
Paywalls you can change
Paywall screens that follow store rules, with prices and offers you can change without a new release.
- 03
One entitlement check
Your backend decides what a user can access from app store and web purchases together, and every screen asks the same question.
- 04
Web billing alongside
Stripe or Razorpay subscriptions on your website, reconciled with app purchases so a customer is never billed twice or locked out.
From production
From subscriptions we run.
Two billing systems, one answer
NoteTubeNoteTube bills with Stripe on the web and RevenueCat in the apps, and a scheduled job reconciles subscriptions between them, so a student who paid on one is not locked out on the other.
Limits enforced by the database
PullsyPullsy's entitlement service covers per-seat and per-storefront plans in INR and USD, enforced down to a database constraint, so a bug in one screen cannot give away a plan.
Credits as well as plans
KraftrKraftr sells credit packs in six currencies through Razorpay, and its overnight batch mode runs at half the credit cost, so the price rewards the path that costs less to run.
Billing in a three-app product
GymFastGymFast pairs RevenueCat with Supabase Postgres and row-level security, behind one token-authenticated API shared by its staff, member, and trainer apps.
Honest trade-offs
When you can skip in-app purchase
Physical goods, real-world services, and purchases used outside the app, such as a gym membership or a consultation, generally do not have to use the store's billing. Many business apps sell on the web and let users sign in to the app. Store rules also differ by country and change over time, so we check the current guidelines for your category and market before designing the paywall.
What we reach for
- RevenueCat
- StoreKit 2
- Google Play Billing
- Stripe, Stripe Connect
- Razorpay
- Webhooks and scheduled reconciliation
- Postgres entitlements
Proof
Shipped, not pitched.
01Our product
NoteTube
A lecture becomes a study system: chat, flashcards, quizzes, all grounded in the source.
An AI learning platform that turns PDFs, YouTube lectures, recordings, and notes into a structured notebook with grounded chat, spaced-repetition flashcards, and graded quizzes.
Web · iOS · Android · Chrome extension · MCP server
02Our product
Pullsy
Instagram analytics that keep the numbers Instagram throws away.
Analytics for creators. Pullsy keeps insights Instagram discards after about 90 days, explains what each number means, grades the account, and turns it into a media kit a brand can verify.
Web · iOS (native SwiftUI) · REST API
03Our product
Kraftr
One flat-lay photo becomes catalog-ready 4K on-model imagery.
An AI catalog studio for fashion and jewelry brands. Upload one flat-lay or hanger shot per SKU and get on-model imagery at up to 4K, in ten aspect ratios, sized for Amazon, Myntra, Flipkart, and Shopify.
Web · iOS · Android
Questions
In-app subscriptions questions we get asked.
Why use RevenueCat instead of building store billing ourselves?
It handles receipt validation, renewals, and the differences between Apple and Google, and sends events your backend can act on. Building that yourself is possible, but it is a lot of edge cases for no product gain.
Can users who subscribe on our website use the app?
Yes. They sign in, and the app asks your backend what they have paid for. Whether you may link to web checkout from inside the app depends on the store and the country, and we check the current rules for you.
Do you build the paywall too?
Yes: the screen, the copy, the trial, and the restore purchases button that reviewers check for. Prices and offers can be configurable so you can test them without a release.
What happens when a renewal payment fails?
The stores retry and may give the user a grace period. Your backend hears about each change and keeps access in step, so users are not cut off early or left on for free.
Can we sell credits or one-time purchases as well?
Yes. Consumables, credit packs, and one-time purchases sit beside subscriptions. Kraftr sells credit packs through Razorpay on the web.
In-app subscription development
Ready to charge for your app?
Tell us what you want to sell, where, and in which currencies. We will tell you how the store rules apply and how we would set it up.


