WanderPins Pro
The paid supporter tier. Real utility at launch (offline pins), a visible Pro badge, and lifted caps. Like Strava or Obsidian Catalyst — not Yelp Premium.
Summary
The paid supporter tier. Real utility at launch (offline pins), a visible Pro badge, and lifted caps on scout pins and trips. Ships into a mature app after R1 and R2 land.
Positioning: closer to Strava or Obsidian Catalyst than Yelp Premium. Subtle status, real features, no feeling of extraction. "Fund the mission, get the feature overlanders actually need, wear a badge that says you support trusted human recommendations over bots."
Free vs Pro
| Feature | Free | Pro |
|---|---|---|
| Pin creation, map, comments, likes, follows, sharing | Yes | Yes |
| Scouting (save pins to check out later) | 10 max | Unlimited |
| Trips (when R8 ships) | 3 max | Unlimited |
| Offline cached pins | Yes | Yes |
| Offline map tile packs | — | Yes (beta at v0) |
| Pro badge on profile + pins | — | Yes |
| Data export (GPX / JSON, when R3 ships) | — | Yes |
| Batch import from photos (future) | — | Yes |
Pricing — three options for discussion
Anchors: Strava Premium ~$12/mo or ~$80/yr. Small-app supporter tiers tend to land $3–$5/mo, $30–$50/yr, $99–$199 lifetime. Leaning: no monthly. Annual + lifetime, more commitment, less churn.
Option A — Simple supporter (recommended)
| Tier | Price | Notes |
|---|---|---|
| Annual | $39/yr | Below Strava, above hobbyist apps |
| Founder Lifetime | $99 | First 100 buyers or 90 days |
Clean. Lifetime is a strong "fund the mission" ask.
Option B — Three-tier, Strava-style
| Tier | Price | Notes |
|---|---|---|
| Monthly | $4.99/mo | Conversion on-ramp, churns higher |
| Annual | $39/yr | ~35% discount vs monthly |
| Founder Lifetime | $99 | First 100 buyers |
Monthly gives a cheap "try it" entry; adds support headache.
Option C — Founder-first, no recurring
| Tier | Price | Notes |
|---|---|---|
| Founder Lifetime | $99 | Uncapped, always available |
| Annual | $49/yr | Secondary |
Strongest mission story. Lower revenue ceiling. Similar to Kagi, Obsidian Catalyst.
Paywall — where it appears
Four entry points, none extractive:
- Settings — "Upgrade to Pro" row. Always-on passive entry.
- Offline feature — locked until Pro. Tap "Download this region" → paywall.
- Onboarding — soft upsell. Post-signup, fully dismissable.
- Profile — "Become a supporter" CTA. Subtle banner on own profile.
No paywall on: creating a pin, following, sharing, viewing the map, commenting, liking. Viral loop stays unblocked.
Pro badge
- v0: Badge next to username wherever the profile appears (header, pin detail, comments, follower list, notifications).
- v0 map treatment: Pro user's pins render with a subtly different color. No new icon, no animation, no glow.
- Not doing: Gold colors, crowns, stars, "PRO" badges the size of a tic-tac-toe board.
Technical approach
- Provider: RevenueCat (wraps StoreKit + Google Play Billing into a single entitlement check).
- Entitlement is not a DB column. Client checks RevenueCat SDK. Server-side verification via Edge Function consulting a
subscription_statuscache table populated by RevenueCat webhook. - Offline cached pins — already works via React Query persistence (
app/_layout.tsx:29-33, 90-day cache). - Offline tile packs — new.
@rnmapbox/maps@10.2.10supportsOfflineManager. - Scout Pin limit enforcement — wrap
useScoutTogglemutation client-side, add Postgres trigger as backstop.
Open decisions for Brad
- Pricing structure — Option A, B, or C?
- Tile packs in v0 (as beta) or slip to v0.1?
- Map color treatment for Pro pins — yes or no?
- "Buy us a coffee" button (live in Settings today) — retire, fallback, or keep alongside Pro?
- Scout Pin 10-limit enforcement — new restriction for existing free users. Grandfather anyone above 10, or enforce immediately with release note?
- Founder-lifetime mechanics (if Option A or B) — cap at 100 buyers, 90 days, or first-to-hit? Announce publicly or keep quiet?
Effort
| Phase | Estimate |
|---|---|
| 0. Back-office (RevenueCat + App Store + Play + banking) | 2–4 days, mostly Apple banking wait |
| 1. SDK install + Mapbox OfflineManager config (FULL BUILD) | 1 day code + 1–3 day Apple review |
| 2. Entitlement wiring into AuthContext | 0.5 day |
| 3. Paywall + badge + Settings upgrade row | 1–2 days |
| 4. Scout limit enforcement + Postgres trigger | 0.5 day |
5. subscription_status table + webhook Edge Function | 1 day |
| 6. Offline tile pack UI | 2–4 days (biggest wildcard) |
| 7. Pro pin map color treatment | 0.5 day |
| 8. Sandbox QA both platforms + real-money smoke | 1–2 days |
| Total | ~10–18 working days, ~2–3 calendar weeks |
Risks
- Apple subscription apps get extra review scrutiny. Restore Purchases must be prominent, auto-renewal disclosure verbatim, privacy policy updated.
- Google Play Billing testing is cursed — real devices only, tester accounts configured in Play Console.
- Webhook idempotency — RevenueCat webhooks can fire out of order or duplicate. Upsert by user_id, reject stale events.