Skip to content
/Flairish
Marketplace / EdTechiOS · AndroidLiverole: React Native Developer

Flairish

Two-Sided Hobby Learning Marketplace (Hobbyist + Instructor Apps)

5K+
Users
4.5
Rating
65+
Screens
React Native 0.78React 19TypeScriptRedux Toolkitredux-persistReact Navigation v7Zoom Video SDK 2.2.0WebSocketFirebase (Auth, FCM, Crashlytics, Analytics)AWS S3react-native-iapFormik + YupReanimated 3react-native-calendarsmoment-timezoneReact Native Paper

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

Two production apps — Hobbyist (consumer) + Instructor (creator) — sharing a single backend ecosystem
Zoom Video SDK 2.2.0 integrated end-to-end with screen sharing & camera sharing on iOS and Android
Real-time WebSocket chat (wss://) with chat freezing, blocked-user handling & dedicated Redux WebSocket slice
S3 media pipeline — presigned URL upload, thumbnail generation, tag limits & progress tracking
Apple Sign-In + Google Sign-In 14.x + OTP via international phone picker with JWT lifecycle (jwt-decode + auto-refresh)
react-native-iap for membership / payment flows (Hobbyist) — Google Play Billing + StoreKit with unified UX
Calendar-based booking with react-native-calendars + moment-timezone (DST + cross-region instructor handling)
AddAvailabilityScreen with animated slide/fade transitions, optimistic updates & API fallback
10+ Redux Toolkit slices per app with redux-persist for offline-first auth & profile hydration
Centralized theme system (colors, typography, spacing, shadows) for visual parity across both apps
Firebase Crashlytics + Analytics, FCM + Notifee push, iOS 14+ App Tracking Transparency
Versioned releases: Hobbyist versionCode 68→76, Instructor 2.0.7→2.1.5

Technical Breakdown

Feature areas & implementation details

Hobbyist App (Learner)
Curated home feed + category-based exploration with horizontal/vertical lists
Instructor profiles with portfolio media, ratings, and pricing
Interactive calendar booking, session summary, pricing breakdown & confirmation
VideoDetailScreen with react-native-video-controls, pause on blur & expandable descriptions
Block/report system with react-native-popup-menu, dynamic report reasons via API & optional notes
Post-session star ratings + written reviews with aggregated instructor scores
Instructor App (Creator)
Media upload pipeline: image/document picker, multi-select, type validation, tag limits & S3 presigned URLs
AddAvailabilityScreen with animated slide/fade transitions, optimistic updates & API fallback
Timezone-aware slot scheduling with 3+ character search rule and UTC conversion
Earnings dashboard, payment history with filters & per-session breakdown
CallScreen with Zoom SDK session cleanup, timer management & host termination logic
35+ screen workspace covering onboarding through live session delivery
Zoom SDK Integration
Zoom Video SDK 2.2.0 with screen sharing & camera sharing on both platforms
NDK ABI filter configuration for Android compatibility
Foreground service handling & media projection permissions on Android
Join/leave lifecycle, host termination & participant cleanup
iOS playback optimisations and clear permission descriptions
Real-Time Chat
Native WebSocket chat (wss://) with dynamic chat freezing based on user state
react-native-gifted-chat UI with media sharing, typing & read indicators
BlockedUsersScreen with fetch & unblock flow integrated into settings
Dedicated Redux WebSocket slice (Instructor) + chat slice with persistence
Push notifications for new messages via Notifee + FCM
Auth, Payments & Security
Apple Sign-In with first/last name retrieval & OAuth user-undefined protection
Google Sign-In 14.0.1 with access token handling & exception management
OTP / phone verification via react-native-international-phone-number + country picker
JWT lifecycle: jwt-decode + react-native-pure-jwt with auth-token Axios interceptors and silent refresh
react-native-iap for memberships (Hobbyist) — Google Play Billing + StoreKit with unified UX
crypto-js / react-native-crypto-js for sensitive payload encryption + Yup validation across all forms
Performance, Theming & Release
React.memo, useMemo & FlatList optimisation across both apps
Video pause-on-unfocus to save resources on scroll
Centralized theme tokens (colors, typography, spacing, shadows) shared between both apps
Firebase Crashlytics production monitoring + Analytics + FCM/Notifee push pipeline
iOS 14+ App Tracking Transparency via react-native-tracking-transparency
Versioned releases: Hobbyist versionCode 68→76, Instructor 2.0.7→2.1.5

Related Writeups

Technical posts drawn from this project's real challenges

7 min read

Implementing Sign In with Apple in React Native (iOS + Android)

A complete walkthrough of integrating Sign In with Apple using @invertase/react-native-apple-authentication — covering Xcode capability setup, Android workaround via JWT, private email relay, credential state handling, and App Store compliance gotchas.

8 min read

Google Sign In with React Native — The Complete Guide

Everything you need to implement Google Sign In using @react-native-google-signin/google-signin — from SHA-1 fingerprint setup and OAuth client IDs, to silent sign-in, token refresh, Play Integrity, and the iOS URL scheme trap that breaks half of all setups.

6 min read

Building Real-Time Chat with WebSocket in React Native

Lessons from building a production WebSocket group chat supporting 200+ concurrent sessions — covering connection lifecycle, offline queuing, message deduplication, swipe-to-reply, and audio messages.

Other Projects

View All →
Arkmantra
Ayurvedic Cosmetics E-Commerce Storefront & Admin

A highly hardened, full-featured D2C storefront and admin control panel designed...

Soul33 – The Beacon
Spirituality, Meditation & Mindfulness Platform

A cross-platform spiritual wellness app live on iOS & Android with Free, Seeker ...

Yoke Yoga
Social Wellness, Live Yoga & Learning Platform

Production yoga social platform — TikTok-style Reels, ZEGOCLOUD live streaming +...