The Flutter Kit logoThe Flutter Kit
Boilerplate · Subscriptions

Flutter Subscription App Boilerplate — Paywalls That Convert

Ship a paid Flutter app without rebuilding the subscription stack. RevenueCat paywalls, free trials, restore purchases, and entitlement gating are already wired across iOS, Android, and Web from one Dart codebase — so you spend day one on your product, not on StoreKit edge cases.

Last updated: 2026-06-04 6 min read By Ahmed Gagan, Flutter Engineer
Quick Answer

The Flutter Kit is a flutter subscription app boilerplate that costs $69 one-time (regularly $149) and ships RevenueCat already integrated — paywalls, free trials, restore purchases, and entitlement-based feature gating. It uses StoreKit 2 on iOS and Play Billing on Android through RevenueCat's Flutter SDK, so subscription state stays consistent across platforms. You own the full Dart source with unlimited projects and lifetime updates, and no subscription of your own to use it.

Price
$69 one-time (was $149), unlimited projects
Billing layer
RevenueCat — StoreKit 2 (iOS) + Play Billing (Android)
Out of the box
Paywall, trials, restore, entitlement gating
Architecture
BLoC + get_it, repository pattern, Material 3

The subscription plumbing that usually eats your first month

A subscription app is mostly the parts nobody demos: fetching offerings, presenting a paywall, handling a purchase, restoring across reinstalls, listening for entitlement changes, and gating premium features without flicker. The Flutter Kit ships all of that as working code, not a tutorial. RevenueCat is configured behind a repository, so the UI never touches the billing SDK directly — your paywall reads offerings from a Cubit, and a premium feature simply asks 'is the pro entitlement active?' instead of parsing receipts. That separation is the difference between a paywall you can ship and one you keep patching.

  • Fetch and display RevenueCat offerings with localized prices, no hardcoded SKUs
  • Free-trial and intro-offer eligibility surfaced in the paywall UI
  • Restore purchases flow that works after reinstall and across devices
  • Entitlement gate (CustomerInfo listener) that flips features the moment a purchase completes or lapses

Why RevenueCat instead of raw in-app purchase code

You could wire StoreKit 2 and Play Billing yourself, but you'd own receipt validation, cross-platform entitlement sync, trial eligibility, grace periods, billing retries, and the server logic to confirm a subscription is genuinely active. RevenueCat collapses that into one entitlement check that's identical on iOS and Android. The kit treats RevenueCat as a swappable layer behind the repository pattern — because you own the Dart source, you can move the entitlement check to Adapty, Superwall, or your own backend later without rewriting your paywall screens. Honest caveat: RevenueCat's free tier covers most indie launches, but it takes a percentage above a monthly revenue threshold, so a high-volume app should price that in against rolling your own.

What you build on top of it

Because billing is solved, the kit is a real subscription app skeleton, not just a paywall widget. Firebase Auth (email, Google, Apple, anonymous) identifies the user, and the same identity is passed to RevenueCat via its appUserID so entitlements follow the account across devices. Material 3 design tokens let you retheme the whole paywall from one file. The included onboarding templates (Carousel, Highlights, Minimal) lead naturally into a 'start free trial' moment, and GA4 with consent management is wired so you can measure paywall views and conversions from launch.

When a different starting point is the better call

This page won't pretend the kit fits every team. If you need a visual, no-code paywall editor and you're comfortable inside a closed builder, FlutterFlow (publicly positioned as low-code) may move faster for a non-engineer. If your monetization is one-time purchases or ads rather than recurring subscriptions, most of the RevenueCat value here is idle and a leaner template is a better fit. And if you're a Flutter expert who already has a battle-tested purchases layer, the kit's real saving is the rest of the app — auth, theming, analytics — not the billing you've already solved.

  • Choose FlutterFlow if a visual builder matters more than owning Dart source
  • Choose a minimal template if you monetize with one-time IAP or ads, not subscriptions
  • Choose The Flutter Kit if you want code-first ownership and a paywall that ships this week

The Flutter Kit vs. building the subscription layer from scratch

The Flutter Kit vs Build from scratch comparison
FeatureThe Flutter KitBuild from scratch
RevenueCat paywall, trials, restorePre-wired, ships workingYou build and test each flow
Cross-platform entitlement syncOne entitlement check, iOS + AndroidStoreKit 2 + Play Billing handled separately
Auth tied to subscription identityFirebase Auth → RevenueCat appUserIDDIY identity-to-purchase mapping
Time to first paywall on screenHoursDays to weeks
Source ownershipFull Dart source, unlimited projectsYours, but written from zero
Cost$69 one-timeYour engineering time

Frequently Asked Questions

Does the boilerplate include a working RevenueCat paywall or just placeholder UI?
It includes a functional paywall that fetches live RevenueCat offerings, shows localized prices and any trial or intro offer, and runs a real purchase and restore flow. You add your RevenueCat API key and configure products in the dashboard, then your offerings render — no placeholder mock data left to replace.
How are free trials and intro offers handled in the kit?
Trial and introductory-offer eligibility comes straight from RevenueCat's offerings, so the paywall reflects what each user actually qualifies for. The kit surfaces that in the purchase button copy, and once the trial converts or lapses, the entitlement listener updates the user's premium access automatically.
Can I gate specific screens or features behind an active subscription?
Yes. A CustomerInfo listener exposes active entitlements through a Cubit, so any widget can check whether the pro entitlement is active and show, hide, or lock a feature. Because it reacts to entitlement changes in real time, access flips the instant a purchase completes or a subscription expires.
What happens to a user's subscription when they reinstall or switch devices?
Restore purchases is built in, and because Firebase Auth identity is passed to RevenueCat as the appUserID, entitlements follow the account rather than the device. A user who signs in on a new phone keeps their active subscription without re-purchasing.
I'd rather not use RevenueCat — am I locked in?
No. Billing lives behind the repository pattern, and you own the full Dart source, so the entitlement check is a single seam you can repoint to Adapty, Superwall, or your own backend. The paywall and gating UI don't need rewriting to swap the provider underneath.
Is RevenueCat free, and does the $69 cover it?
They are separate. The $69 is a one-time payment for the boilerplate. RevenueCat has its own free tier that covers most early-stage apps and charges a percentage above a monthly revenue threshold — you sign up directly with them, and the kit is wired to plug your account in.

Keep exploring

Start your subscription app with the paywall already built

Skip the StoreKit and Play Billing edge cases. Get The Flutter Kit for $69 one-time, plug in your RevenueCat account, and have trials, restore, and entitlement gating running across iOS, Android, and Web this week.

Get The Flutter Kit — $69

One-time purchase · Lifetime updates · Unlimited projects