ThryftUp — White-Label App Platform



Project Details
- Role: Mobile Developer
- Platform: iOS & Android (Expo)
- Architecture: White-Label / Multi-Brand
- Year: 2025
- Company: YIP Online
About ThryftUp
ThryftUp is a white-label app platform built for YIP Online: a single React Native (Expo) codebase that ships as multiple fully branded apps for different businesses. The brand-variant system is the core of the project; the app it brands is a second-hand kids' marketplace. Each brand variant gets its own app name, bundle identifier, icons, splash screen, and colour scheme, all resolved at build time without touching source code.
Tools & Technologies
React Native, Expo SDK 53, Expo Router, Pusher, Google Maps, expo-location, EAS Build, EAS Update, expo-notifications, expo-calendar, expo-camera, expo-image-picker, React Navigation, Gorhom Bottom Sheet
Engineering Highlights
Built a white-label architecture using a businesses.js file as the single source of truth for brand variants. Each variant defines its app name, bundle ID, Android package, icons, splash, and colour scheme. app.config.js resolves the active variant at build time via the APP_VARIANT env variable, and EAS build profiles in eas.json map each variant to its own channel, API URL, and business ID — so one eas build --profile thryftuptablet produces a fully branded APK/IPA without touching any source code.
Implemented real-time chat powered by Pusher with offline message sync, meetup scheduling with calendar integration, and push notifications with deep linking across offers, meetups, messages, and support tickets. Price drop alerts are delivered via Pusher real-time events, keeping buyers engaged without polling.
Designed a Trust Score system — a tiered reputation engine (Paper → Bronze → Silver → Gold → Platinum) tracking reliability, safety, and recovery metrics. Alongside it, a Joy Score tracks community engagement through gifting, bundles, and community activity, giving the marketplace a social layer beyond simple transactions.
Built a Store Owner mode giving sellers a separate dashboard to manage listings with approval status filters. A useStoreBrandColors hook and ThemeContext propagate brand colours throughout the UI at runtime using a three-level priority: store brand → white-label theme → default palette — ensuring every branded deployment feels native to its business.