Snugit has had an "Upgrade to Pro" screen for a while now. It had the right layout, the right copy, a feature list, a button — and behind that button, an alert box that said, more or less, "not yet." It looked finished. It wasn't.
Today it actually is. Snugit Pro is wired up end to end — real prices pulled live from the App Store, a real purchase flow, and a 3-day free trial before anything gets charged.
Why this took longer than the screen itself
Building the paywall's layout took an afternoon. Making it real took stitching together three separate systems that all have to agree with each other: the actual subscription products defined in App Store Connect, RevenueCat sitting in between to manage entitlements, and the app itself asking "does this person actually have Pro?" at the right moments. Get any one of those slightly wrong and the answer is either "everyone's a free user forever" or "nobody's a free user," and neither is a good day.
The free trial mattered more than I expected
I went back and forth on whether a trial was worth the extra setup. It is — for one very specific reason. When someone hits the paywall by surprise, mid-task, straight from a "you're at your item limit" moment, asking for money at that exact second is the worst possible time to ask for money. A trial changes the actual question from "pay right now" to "keep going and decide later," which is a much easier yes.
What "real" actually required
Two things I hadn't fully appreciated going in. First, Apple requires a working Restore Purchases option on any paywall — not optional, a review guideline — so that's in, right under the buy button. Second, both the Privacy Policy and Terms of Service need to be tappable from inside the app itself, not just linked from this website, so those are now on the paywall and in Settings too.
None of that is exciting to build. All of it is the difference between a paywall that looks done and one that survives App Review.
Download Snugit — Pro won't be a mystery screen when you get in, it'll just work.
More on what's free and what isn't: deciding what stays free.