Overview
d-sports-engage-native (package name:engage-native) is the native mobile app for D-Sports. It mirrors the core PWA experience on iOS and Android: wallet, shop, leaderboard, locker room, and profile.
Tech stack
| Category | Technology |
|---|---|
| Framework | Expo 54, React Native 0.81, React 19 |
| Auth | Clerk (Expo) |
| Payments | RevenueCat (react-native-purchases) |
| Web3 | Thirdweb |
| State | Zustand + MMKV |
| UI | Lucide React Native |
| Navigation | Expo Router 6 |
| Animations | React Native Reanimated 4 |
| Package | Bun |
Features
- Wallet — Tokens, holdings, pack opening, crypto checkout (via PWA backend)
- Shop — Collectibles, cart, coin bundles, checkout
- Leaderboard — Rankings and filters
- Locker room — Social feed, quests, games (Pick’em, Spin Wheel, Guess the Player)
- Profile — User profile and settings
- Onboarding — New user flow with team selection
- Theme — Dark/light mode (default dark)
- PWA-ready — Standalone display, responsive desktop layout, web hover states
Getting started
bun run build:dev (EAS) or run with Expo dev client.
Project structure
Architecture patterns
- File-based routing via Expo Router with route groups
(tabs),(auth),(onboarding) - Modular screen architecture — screen files contain only JSX; all state/effects/handlers live in dedicated hooks
- Extracted sub-components — wallet and shop screens decomposed into separate component directories
- API client layer in
lib/api/with MMKV cache fallback - Crypto checkout via Thirdweb SDK calling PWA backend for on-chain payments (Arbitrum, Ethereum, Polygon)
- Path alias
@/*maps to project root
Environment variables
Configure the following in your.env:
| Variable | Description |
|---|---|
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY | Clerk publishable key |
EXPO_PUBLIC_API_BASE_URL | API base URL (d-sports-api) |
EXPO_PUBLIC_REVENUECAT_API_KEY_IOS | RevenueCat iOS key |
EXPO_PUBLIC_REVENUECAT_API_KEY_ANDROID | RevenueCat Android key |
EXPO_PUBLIC_THIRDWEB_CLIENT_ID | Thirdweb client ID |
Branding
- Base background (dark):
#0a0e1a - Accent gold:
#F5C842 - Primary blue:
#4169E1
Ecosystem overview
See how the native app fits with the PWA, site, and Mic’d Up.
