App Screenshots
Social wellness, live yoga & a learning platform
A wellness social platform on RN 0.72 with a TikTok-style Reels feed dropping frames, generic Zego Cloud integration, and over-broad redux-persist hydration causing slow cold starts and stale lists in memory.
Migrated to RN 0.79 + React 19 with new-architecture readiness, integrated the full ZEGOCLOUD trifecta (Live UIKit + ZIM chat + Express Engine for low-latency A/V), tuned the redux-persist whitelist to only durable state, and rebuilt the Reels player with Reanimated v4 worklets, FastImage priority caching, and lifecycle-aware playback.
- 60fps Reels on low-end Android — animations on the UI thread, FastImage caching, deferred non-critical work via InteractionManager
- 12+ Redux Toolkit slices reorganised with a curated persist whitelist + versioned migrations
- Force-update / soft-update modal driven by Firebase Remote Config without halting the feed UX
Live on App Store + Play Store with 10K+ users, ZEGOCLOUD-powered live yoga sessions, in-app purchases for memberships, and a Reels feed that holds frame on devices that previously stuttered.
About the Project
Yoke Yoga is a full-featured wellness social platform built for yoga practitioners over May–December 2025. It is a complete ecosystem for learning, practising, sharing, and connecting with verified yoga instructors — feed, reels, live classes, in-app chat, a curated learning center, and a structured guided-learning journey.
I led a major React Native migration from 0.72 to 0.79 (React 19, new-architecture-ready) with full TypeScript coverage, redux-persist for offline-first hydration, and a deep multi-stack navigation graph: Stack + Bottom Tabs + Drawer + Material Top Tabs. The Redux store is split across 12+ feature slices (auth, profile, home feed, chat, saved, interests, onboarding, block-list, app-state, updates, miscellaneous) with a curated persist whitelist tuned to keep only durable state.
The video layer includes a TikTok-style infinite-scroll Reels feed with thumbnail generation via react-native-create-thumbnail, gesture-driven controls, pinch-to-zoom, lifecycle-aware playback (pause on navigate / resume on return), and FastImage priority loading. Live experiences are powered by the ZEGOCLOUD trifecta — Live UIKit for prebuilt host/audience flows, ZIM for real-time chat (rendered through react-native-gifted-chat), and Express Engine for low-latency audio/video — running alongside KeepAwake and stream quality management.
Auth covers Google Sign-In, OTP via react-native-otp-textinput, Formik + Yup forms, and email/password with hashed payloads. Monetisation is handled by react-native-iap for premium memberships. Firebase Remote Config drives a force-update / soft-update modal and runtime feature toggles, while FCM + Notifee deliver push with foreground handlers and custom channels. A gamification layer tracks level progression, energy/battery mechanics, achievement popups (LevelPopup, BatteryFullModal), and a visual GamePath. Practice Insights uses react-native-chart-kit and react-native-gifted-charts with a custom date-range picker. Permissions are abstracted behind a single utility that also handles iOS App Tracking Transparency, console.logs are stripped in release via babel-plugin-transform-remove-console, and CI/CD ships through GitHub Actions with ProGuard rules and beta/production env switching.
Key Highlights
Technical Breakdown
Feature areas & implementation details
Related Writeups
Technical posts drawn from this project's real challenges