Inspiration

The van life movement has exploded in recent years, yet the community remains fragmented across generic social platforms that weren't designed for life on the road. Solo travelers struggle to find safe overnight spots, connect with nearby nomads, or coordinate group travel. There's no centralized place to find a trusted van builder, no safety net for people living off-grid, and no dating platform that understands the nomadic lifestyle. We built Roam because we believe the van life community deserves a purpose-built digital home — one that addresses the unique challenges of living and traveling on wheels.

What it does

Roam is an all-in-one social platform built exclusively for the van life community. It combines:

  • Social Feed & Explore — Share posts with photos, locations, and hashtags. Discover trending content and see who's active nearby within 50 miles.
  • Tribes — Interest-based communities (outdoor, creative, remote work, etc.) where members can post, discuss, and organize around shared passions.
  • Convoys — A unique group travel feature that lets users plan road trips together with destinations, dates, pace settings, member caps, and real-time route tracking on an interactive map.
  • Dating — A built-in swipe-based matching system with compatibility scoring, designed specifically for nomads looking to connect romantically on the road.
  • Spot Discovery — A crowdsourced map of van-specific locations (camping, water fill-ups, dump stations, WiFi spots, showers, charging, repair shops, and more) with cost info, cell signal ratings, and verified visitor reviews.
  • Builders Marketplace — A directory of skilled van builders and specialists (electrical, solar, plumbing, carpentry, full builds) with portfolios, booking workflows, rate info, and post-project reviews.
  • Safety Circle — An emergency contact system where up to 5 trusted contacts receive automated alerts if a traveler misses a scheduled check-in, with optional location sharing and configurable quiet hours.
  • Messaging — Direct messages, convoy group chats, and message request screening.
  • Van Profiles — Showcase your build with make, model, year, build type, features, and photos.

How we built it

Roam is a native iOS app built entirely in SwiftUI targeting iOS 15+, following an MVVM architecture with environment objects for state management. The backend is powered by Google Firebase:

  • Firebase Auth for email/password, Apple Sign-In, and Google Sign-In authentication
  • Cloud Firestore as the primary NoSQL database with real-time listeners and offline caching
  • Firebase Storage for all image and media uploads
  • Firebase Cloud Messaging for push notifications across 8 notification categories
  • Firebase Cloud Functions for serverless backend operations

We integrated MapKit and CoreLocation for the interactive map experience, spot discovery, and location-based features. The app uses CryptoKit for secure Apple Sign-In nonce generation and AVFoundation for camera access.

The codebase spans 130+ Swift files with 60+ SwiftUI views, 36+ reusable components, 17 data models, and 5 dedicated service managers. We solved Firestore's composite index limitations by implementing in-memory sorting patterns, and built custom pagination, search debouncing, and a fully custom tab bar for a polished user experience.

Challenges we ran into

  • Firestore composite index limitations — Queries combining whereField and orderBy on different fields silently fail without pre-created composite indexes. We discovered this across numerous features and developed a pattern of removing server-side ordering and sorting results in memory instead.
  • Collection group query constraints — Features like finding a user's tribes across all tribe membership subcollections required collection group indexes that Firestore doesn't auto-create, forcing us to implement fallback strategies.
  • SwiftUI state management at scale — Managing state across 60+ views with sheets, navigation stacks, and real-time Firestore listeners required careful use of onDismiss callbacks, view identity forcing with .id(), and guards against empty state during async loads.
  • Real-time data consistency — Keeping the feed, messages, notifications, and map data synchronized in real-time while maintaining smooth scroll performance and managing Firestore listener lifecycles.
  • Building a dating system from scratch — Implementing swipeable card interactions, mutual matching logic, compatibility scoring, and match notifications as a fully integrated feature rather than a standalone app.
  • Location privacy balance — Designing a system that enables powerful location-based discovery while giving users granular control through geofences, visibility thresholds, and per-feature privacy settings.

Accomplishments that we're proud of

  • A truly integrated platform — Dating, group travel, marketplace, safety, and social networking all work together seamlessly rather than feeling like separate apps stitched together.
  • The Safety Circle — Building a real safety net for solo travelers with automated check-ins, grace periods, quiet hours, and emergency alerts gives us confidence that Roam can genuinely protect people living on the road.
  • Convoy system — No other platform lets nomads coordinate group road trips with route visualization, member management, dedicated chat, and convoy-specific feeds. It's a completely novel feature.
  • The Spot ecosystem — 14 van-specific location types with cell signal ratings, cost transparency, and verified reviews create a living map that gets more valuable with every user contribution.
  • Builders Marketplace — Connecting van lifers with verified builders through portfolios, booking workflows, and reviews solves a real pain point in the community where finding trustworthy skilled labor is largely word-of-mouth.
  • 100% SwiftUI — The entire app is built with modern declarative UI with no UIKit dependencies, keeping the codebase clean, maintainable, and ready for future Apple platform features.

What we learned

  • Design for the edge cases first — Van lifers deal with poor connectivity, remote locations, and unpredictable schedules. Building offline support, graceful error handling, and flexible check-in schedules from the start saved us from major rewrites.
  • Firestore is powerful but opinionated — Understanding its indexing model, query limitations, and pricing structure early is critical. In-memory sorting is sometimes the pragmatic answer over waiting for composite index support.
  • Community features need trust infrastructure — Ratings, reviews, verification badges, and moderation aren't nice-to-haves — they're essential for a platform where people are meeting strangers on the road and hiring builders to work on their homes.
  • Privacy is a feature, not a constraint — Giving users fine-grained control over location sharing, messaging permissions, and dating visibility actually increases engagement because people feel safe enough to participate.
  • SwiftUI rewards patience — Some patterns that feel natural in UIKit require creative workarounds in SwiftUI, but the end result is a more maintainable and readable codebase.

What's next for Roam

  • Android launch — Expanding to Android to reach the full van life community across both platforms.
  • Route planning & navigation — Integrated trip planning with waypoints, fuel stops, and elevation data tailored for van dimensions and weight.
  • Community events — Expanding the events system with ticketing, RSVPs, and recurring meetup support for van life gatherings and rallies.
  • AI-powered recommendations — Smart spot suggestions based on travel patterns, preferences, and community trends.
  • International expansion — Localizing the platform and spot database for van life communities in Europe, Australia, and South America.
  • Offline-first architecture — Deeper offline support so the full app experience works even in areas with zero connectivity.

Built With

Share this project:

Updates