Inspiration
This project started with an idea from Quin, and I was immediately drawn to it because it solves a problem for a real niche: people who live on the road. As I sketched product ideas I realized most social and dating apps are optimized to keep people in the app with endless swiping, match anxiety, and notifications. Van-lifers, however, are usually moving: they don’t want to collect matches, they want to meet real people on the road.
That led to a simple insight: instead of swiping through profiles, show people who are actually likely to meet you. Folks in the same city, headed to the same place, or whose routes physically cross yours. That became the core idea: path matching, plus local, ephemeral social features and a small, paid, invite-only community to preserve quality.
What it does
Hitch is an invite-only iOS app built for vanlifers and long-term mobile travelers. The MVP focuses on three things:
Path matching: discover people you can realistically meet (same city, same destination, or along your route) by entering your next destination and date range. Local, Campfire posts: Radius-scoped, short posts for hangouts, advice, or quick invites. The Yard: van build showcases and help requests for repairs, skills, and trade-offs. Map-based events with participant caps and application-based RSVP for safety. Safety & trust: invite gate + optional identity verification (selfie + government ID).
We intentionally did not implement friend requests in the MVP. We prioritized direct messaging + message requests to keep initial interactions deliberate and moving toward real conversation.
How we built it
The product is an iOS-first mobile app built with modern mobile tooling and a lightweight backend stack: Frontend: React Native + Expo (TypeScript, Expo Router). Backend and DB: Supabase (Postgres with PostGIS for geospatial operations). Geospatial work: PostGIS to run buffer and distance checks for route overlap. Subscriptions: RevenueCat for in-app purchases and a webhook to sync server-side. OneSignal for notifications. Route generation: Google Directions API (polyline decoding → WKT).
High level flow: User sets origin, next destination, and a date window. App builds a Google route polyline, decodes it, and sends a WKT route + origin/destination points to the backend. Backend (PostGIS) computes three overlap flags: near_origin, near_destination, on_route (using configurable buffers), plus time overlap. Results are returned as match cards shown on the map.
Challenges we ran into
Path matching was the toughest, most time-consuming part of the project. The algorithm looks simple on paper, but in practice there are many subtle, high-cost issues that can silently break results.
Accomplishments that we're proud of
Built and shipped an iOS-first MVP demonstrating path matching, Campfire posts, the yard, events with application caps, and optional identity verification. Implemented a PostGIS-based matching RPC and improved observability so matching failures are diagnosable. Integrated RevenueCat for subscriptions and a webhook to keep the backend authoritative about entitlements. Created an invite-first onboarding flow that keeps the early cohort intentional and safe.
What I learned
On top of all the technical things, I got more insight into human behavior and real world design. Vanlife behavior differs from digital-native social use. So features had to support movement, short windows, and in-person safety. Default to human expectations: Users prefer a few plausible matches over many precise-but-useless ones. For a social product, reducing false negatives matters more than eliminating all false positives. Also, as a side note people are really frustrated with dating apps
What's next for Hitch
I am planning to improve offline & sync behavior. This would make the app more resilient to poor connectivity on the road. Expand verification & safety: I'd like to introduce community-backed verification and local host programs.
Built With
- expo-haptics
- expo-router
- expo.io
- mmkv
- react-native
- react-native-maps
- react-query
- revenuecat
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.