WE OUTSIDE.
OUT HERE is an urban movement app built with React Native + Expo. It rewards real-world movement (steps/distance), supports social competition, and organizes Outside experiences across battles, events, drops, and news.
apps/mobile- Expo mobile app (primary client)backend- API/backend servicesDocs- PRD, build plan, and task specsmarketing- website/marketing assets
Bottom tabs:
HomeOutsideMoveCrewProfile
Outside is a nested section with persistent header + subpages:
ArenaEventsDropsNews
- Pedometer-based movement tracking
- Arena hub with rankings, challenges, and active 1v1 battles
- Battle detail screens with live countdown/progress states
- Events RSVP/check-in flows
- XP + OUT wallet/ledger surfaces
- Membership gating (Free / Pro / Black)
- Crew ownership + logo upload flow
- Rewards and drops surfaces
- React Native (Expo SDK 54)
- Expo Router
- React Query
- Zustand + AsyncStorage
- Supabase + FastAPI integrations via app API layer
- Mapbox / maps integrations (mobile-specific)
- Node.js 20+
- npm
- Xcode (for iOS simulator) and/or Android Studio (for Android emulator)
cd apps/mobile
npm installcd apps/mobile
npx expo startUseful options:
npx expo start -c # clear Metro cache
npx expo-doctor # dependency/environment checks
npx tsc --noEmit # type checkThe mobile app currently uses SDK 54 compatible versions and keeps a few pinned/overridden packages for compatibility with existing patches.
postinstallruns:patch-packagescripts/cleanup-duplicate-native-deps.js
This ensures duplicate transitive native modules are cleaned up after install so expo-doctor remains healthy.
Mobile uses apps/mobile/.env for EXPO_PUBLIC_* values (API URLs, keys, app config).
Current baseline (after install):
npx expo-doctorpassesnpx tsc --noEmitpassesnpx expo startboots Metro successfully