Skip to main content

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

  1. 01

    Store billing, set up properly

    Products, subscription groups, trials, and introductory offers in App Store Connect and Google Play Console, wired through RevenueCat.

  2. 02

    Paywalls you can change

    Paywall screens that follow store rules, with prices and offers you can change without a new release.

  3. 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.

  4. 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

    NoteTube

    NoteTube 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

    Pullsy

    Pullsy'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

    Kraftr

    Kraftr 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

    GymFast

    GymFast 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.

  1. 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

  2. 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

  3. 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.

Scope my subscriptions

No pitch deck. You own the code from day one.

contact@acasalabs.com