Twin RN 0.78 + React 19 apps sharing a backend — Zoom Video SDK 2.2.0 with screen + camera sharing, native WebSocket chat with freeze/block, react-native-iap memberships, and Apple/Google 14.x + OTP. Versioned releases: Hobbyist 68→76, Instructor 2.0.7→2.1.5.
About the Project
Flairish is a hobby & skills learning marketplace shipped as **two interconnected React Native apps** — Flairish Hobbyist for learners and Flairish Instructor for coaches — built on React Native 0.78 + React 19 with TypeScript, Redux Toolkit, and a shared backend.
**Flairish Hobbyist** is the consumer-facing experience: hobbyists discover instructors via a curated home feed and category-based exploration, view portfolios with media galleries, message instructors in real time, book 1:1 sessions through an interactive calendar, pay via in-app purchase, attend live Zoom video sessions, and leave star ratings + written reviews. The Redux store is split across 10+ feature slices (Authentication, Profile, Home, Explore, Chat, BookSession, Calender, SessionManagement, RatingsReviews, Miscellaneous) with redux-persist for offline-first auth hydration. A dynamic content feed uses react-native-video-controls with pull-to-refresh, expandable descriptions, and a block/report system with dynamic report reasons fetched from the API.
**Flairish Instructor** is the creator-facing workspace: instructors build their profile, upload portfolio media (images + videos) to AWS S3 via presigned URLs with thumbnail generation and tag limits, manage availability with timezone-aware slots, conduct live 1:1 sessions, and track earnings + session history. A native WebSocket chat layer powers real-time messaging with a dedicated WebSocket Redux slice. AddAvailabilityScreen ships with animated slide/fade transitions, optimistic updates, and API fallback; CallScreen handles Zoom SDK session cleanup, timer management, and host termination logic. Versioned releases: Hobbyist versionCode 68→76, Instructor 2.0.7→2.1.5.
Both apps share Zoom Video SDK 2.2.0 with screen sharing and camera sharing on iOS and Android (NDK ABI filter, foreground service + media projection on Android, iOS playback optimisations), Apple Sign-In + Google Sign-In 14.x + OTP via international phone picker, JWT auth with jwt-decode + react-native-pure-jwt, crypto-js encryption for sensitive payloads, react-native-iap for memberships/payments, Formik + Yup forms, Reanimated 3 animations, react-native-calendars + moment-timezone for scheduling, Google Places autocomplete + geolocation, Notifee + FCM push, Firebase Crashlytics + Analytics, iOS 14+ App Tracking Transparency, and a centralized theme system (colors, typography, spacing, shadows) for visual parity across both apps.
Key Highlights
Technical Breakdown
Feature areas & implementation details
Related Writeups
Technical posts drawn from this project's real challenges