Inspiration
"I'm looking for someone to travel with me, not necessarily stay in one spot. And so when I'm going to all these new locations and trying to date, it just kind of fails every time because I'm leaving and they're staying put." — Quin Gable
There are 18 million digital nomads in the US. Every one of them knows the feeling: you pull into a new town, open a dating or social app, and realize nobody on it understands your life. The problem isn't finding people nearby — it's finding people who get it.
Social isolation is consistently the pain point that ends nomad trips. Not mechanical failures, not money — loneliness. Existing apps don't solve this. Tinder and Bumble assume stationary users. Facebook groups are fragmented with no location awareness. Nobody has built the thing nomads actually need.
What it does
nomatch is a companion app purpose-built for the nomadic community. Everyone on nomatch is already a nomad. The membership is the filter.
- Map-first discovery — See nomads nearby on a live map, not a swipe deck. Tap a pin, browse their profile, see their rig.
- "Down for" tags — Users toggle what they're up for today: coffee, hike, cowork, dog walk, van help, drinks.
- Travel intent — Share where you're headed next and see who's heading your way.
- Express interest → mutual connection → contact exchange — Low-pressure. Mutual interest unlocks contact info. Nomads connect on their preferred platform, not another messaging silo.
- Invite-only with photo & vehicle verification — Every user enters through a code from an existing member. Selfie and vehicle verification with admin review. Everyone on the map is verified. (TestFlight demo build auto-approves verification after ~20 seconds — you don't need an actual vehicle, any photos will work for the demo. Experience the full flow without waiting for manual review.)
- Apple Watch companion — An always-on complication shows nearby nomads and what they're down for. Zero competitors have this. It transforms nomatch from an app you open into an ambient signal that your community exists around you.
- Nomad Card — Shareable profile card for Instagram and TikTok — organic growth built into the product.
The complete discovery → matching → contact exchange loop works entirely on the free tier. Premium enhances but never gates the core experience.
Testing the app
- Sign in — Uses Sign in with Apple. Any Apple ID will work.
- Invite codes — The app requires an invite code during onboarding. Use any code from
NMTCH001toNMTCH050(each code is single-use — try the next one if yours is taken). - Verification — After onboarding, you'll be asked to verify with a selfie and vehicle photos. The demo build auto-approves verification after ~20 seconds — any photos will work (snap your desk, wall, etc.).
- In-app purchases — To test the nomatch+ subscription, use this sandbox App Store account when prompted: Email:
nomatchjudge2026@gmail.com/ Password:Nomad$Judge42
How I built it
Solo build — design, engineering, backend, and integration by one developer with 17 years on Apple platforms.
- Swift + SwiftUI with iOS 17+
@Observable— no UIKit, no storyboards - CloudKit (public + private databases) — geohash-based nearby queries, push notification subscriptions, CKAsset photo storage
- RevenueCat — three products (monthly $6.99, annual $39.99, founding lifetime $49.99) with a single
nomatch+entitlement. Sandbox-validated, real App Store Connect products. - Protocol-based architecture — views never import CloudKit or RevenueCat directly. Every external service sits behind a protocol, injected via SwiftUI Environment. Swap CloudKit for Supabase by conforming to the same protocol.
- 3 build targets — iOS app, watchOS app, watchOS widget extension
- Apple Vision framework for on-device face detection during selfie verification
- WatchConnectivity + WidgetKit for the ambient proximity complication
Challenges I ran into
- CloudKit cross-user writes for admin verification — CloudKit's default permissions only let record creators write their own records. Admin verification approval requires modifying another user's records. Solved with a custom CloudKit security role with explicit Read+Write grants, assigned via the Dashboard.
- Location privacy vs. discovery accuracy — Exact coordinates would expose camp spots. Grid snapping to ~100m (0.001° quantization) before writing to CloudKit gives "nearby" accuracy while preventing trilateration attacks.
- Watch data sync without a server — No backend means no push to Watch. Built a dual-path system: WatchConnectivity
applicationContextfor real-time sync + App GroupUserDefaultsfor the widget extension, which can't use WatchConnectivity directly. - Silent push limitations — iOS doesn't wake killed apps for silent pushes. Nearby nomad alerts require the app in memory. Documented as a known limitation with server-side filtering planned post-MVP.
Accomplishments that I'm proud of
- The Apple Watch complication — glance at your wrist and know your community is out there. No competitor in the nomad space has anything like this.
- Product discipline — I deliberately skipped in-app chat and a builder marketplace to focus on the core: discovery. One tight loop that closes completely.
- RevenueCat integration since before it had a dashboard — I reached out during WWDC 2018 and got a personal beta invite from Jacob Eiting.
- 22 seeded demo profiles that make the map feel alive from the first launch, with zero CloudKit writes.
What I learned
- Audience research changes everything. Reading hundreds of nomad forum posts revealed that social isolation — not mechanical problems or money — is what ends nomad trips. That insight shaped every product decision.
- Contact exchange > chat for MVP. Nomads already live on Instagram and WhatsApp. Building another messaging silo would show I don't understand my users. Letting them choose shows I do.
- Map-first is validated. Snap Map (400M MAU) and Jagat (22M users) proved that spatial social discovery works at scale. Swipe decks are the wrong metaphor for "who's near me right now?"
- Community vouching sounds right but breaks at small scale. Research into trust models (Reddit karma, Clubhouse vouching, Crossroads social voting) revealed a cold-start paradox: new users with zero votes are either ungated (no protection) or invisible (onboarding death). This finding drove nomatch's invite + admin verification model — a hard trust gate that works identically at 10 users or 10,000.
What's next
- Seasonal heatmaps — where nomads cluster by season (Quartzsite in winter, PNW in summer)
- Weather and safety alerts — flash floods are the #1 killer of vehicle dwellers (NOAA), yet nomads juggle multiple weather apps
- Android — expand beyond iOS to reach the full community
Built With
- cloudkit
- core-location
- ios
- mapkit
- revenuecat
- swift
- swiftui
- vision
- watchconnectivity
- widgetkit
- xcode

Log in or sign up for Devpost to join the conversation.