Inspiration
Quin Gable's brief spoke directly to a real problem: vanlifers and nomads struggle to date and make friends because "I'm leaving and they're staying put." There wasn't an app built for people who live on the road—so I built Roamies: a dating and community app where nomads can swipe, match, chat, see who's nearby on a map, and join or create convoys (travel plans). I kept the community invite-only and safety-first (block, report) to match the brief and protect the space.
What it does
- Swipe & match: Card stack with like/pass; mutual likes create a match with a short celebration.
- Chat: Conversations with matches—list and thread view, text, images, and voice messages.
- Map: See where your matches are (distance, presence) on a map.
- Convoys: Create or join travel plans (date, place, activity) and meet up on the road.
- Profiles: Photos, bio, activities (climbing, skiing, hiking, etc.), dating vs friends mode.
- Invite-only: Sign-up via invite code; Cloud Functions verify and consume codes.
- Premium: RevenueCat subscription (unlimited swipes, see who liked you) + swipe packs (10 / 50 / 100). Paywall and entitlements drive the business model.
How I built Roamies
- Stack: Expo SDK 54, Expo Router (file-based navigation), React 19, React Native, TypeScript, NativeWind v4 (Tailwind for RN). New Architecture enabled for performance.
- Backend: Firebase (Auth, Firestore, Storage). Cloud Functions for invite codes, mutual-like matching, and photo URL handling.
- Monetization: RevenueCat (react-native-purchases + react-native-purchases-ui) for subscriptions and one-time products.
- Swipe UX:
react-native-gesture-handlerandreact-native-reanimatedfor the card stack so swipes feel smooth and responsive. - Design: Single design system, light/dark mode, photo-first profiles. i18next for localization (EN and extensible).
- Ship: EAS for iOS (TestFlight) and Android (internal testing).
Challenges I ran into
- Gesture + layout: Making the swipe stack feel instant (no lag, no stuck cards) required tuning gesture handlers and avoiding nested
ScrollViews. I ended up with a single gesture-driven stack and a separate filter sheet. - RevenueCat + Firebase: Keeping "is premium" and swipe quotas in sync after purchase or restore meant designing for webhooks and client-side entitlement checks so the app state stayed correct when the paywall closed.
- Scope in 4 weeks: Quin's brief included dating, friends-by-activity, and a builder marketplace. I shipped dating + activities + convoys + map first and made invite-only and safety non-negotiable. Focusing on one primary flow (swipe → match → chat) kept the MVP shippable.
Accomplishments that i'm proud of
- Full MVP in 4 weeks: Onboarding, swipe stack, matching, chat (text, images, voice), map, convoys, premium paywall, and invite-only—all working on iOS and Android.
- RevenueCat done right: Both subscription and consumable products in one paywall, with clear entitlement logic and a polished paywall UI.
- Swipe feel: The card stack runs at 60fps and feels native; haptics and match celebration add polish.
- Safety from day one: Invite-only signup, block/report flows, and moderation-friendly data model.
What I learned
- Swipe at 60fps: Gesture-handler + Reanimated (and avoiding heavy work on the JS thread) made the difference between "ok" and "great" swipe UX.
- RevenueCat beyond "subscribe": Modeling Premium + swipe packs (entitlements + consumables) in one place taught us how to structure products and paywall copy for both subscription and one-time users.
- Firebase + invite-only: Firestore rules plus a small Cloud Function (verify/consume invite code) gave us invite-only without a custom backend.
- NativeWind in RN: Using
classNameand a single token file for colors/theme sped up UI work and made light/dark mode consistent.
What's next for Roamies
- Friends-by-activity: Dedicated "find friends" flow filtered by activity (climbing, skiing, hiking) and location, as in Quin's brief.
- Builder marketplace: Connect van builders with people who need help (paid consultations, as suggested in the brief).
- Verification & trust: Optional verification (e.g. photo or social) and clearer "verified" badges for safer community growth.
Built With
- expo.io
- firebase
- react-native
- revenuecat
Log in or sign up for Devpost to join the conversation.