Inspiration

We’ve all been there—trying to glue together a subscription system for an app, wrestling with Stripe docs, or hacking together a paywall that looks like it’s from 2010. We wanted something simple, customizable, and actually pleasant to use. RevenueCat solved the backend complexity, but we still found ourselves rebuilding the same paywall UI over and over.

What it does

Our project is a drop-in paywall UI that: Looks good by default (but lets you customize everything). Syncs with RevenueCat—no manual subscription state handling. Supports A/B tests right out of the box (change pricing, layouts, or CTAs without app updates). Actually converts users (because what’s the point otherwise?).

How we built it

The Stack Frontend: Next.js + Tailwind (for the demo dashboard). Mobile: Flutter (since nobody wants to maintain two codebases). Backend: Firebase (because we didn’t want to manage servers). RevenueCat API: For handling subscriptions (because reinventing that wheel is madness).

The Process Week 1: Built a basic paywall that pulled data from RevenueCat. Week 2: Realized our UI was ugly. Hired a designer friend for pizza. Week 3: Added A/B testing after realizing everyone tweaks paywalls constantly. Week 4: Wrote docs (because nobody uses things without docs).

Challenges we ran into

  1. “Why Is This Button Not Updating?!” (State Management Hell) Syncing subscription status across devices was a nightmare. We fixed it by overusing Firebase listeners (sorry, wallet).

  2. “Wait, How Do You Say ‘$9.99’ in Japanese?” (Localization Pain) Turns out, not every currency formats prices the same way. We learned that the hard way.

  3. “Our A/B Test Just Broke Production” (Oops.) Lesson: Feature flags are your friend.

Accomplishments that we're proud of

1,000+ devs used our Flutter package in the first month. Reduced setup time from “a weekend project” to “15 minutes.” Got a shoutout from RevenueCat’s team (which felt awesome).

What we learned

Small UI tweaks matter more than we thought. Changing a button color boosted conversions by 12%. Developers hate writing docs… but love reading them. So we made ours stupidly detailed. Open-source is rewarding but exhausting. (GitHub issues never sleep.)

What's next for RevenueCat's Paywall

AI-generated paywalls? Maybe. (If we can make it not cringe.) One-click Stripe mode for people who don’t need RevenueCat. A “donate-to-remove-ads” option because indie devs deserve nice things.

Built With

Share this project:

Updates