Back to Projects
Mobile App

Gcbuying Mobile

The React Native (Expo) mobile app for the GCBuying fintech platform — gift cards, crypto trading, wallets, and bill payments on one cross-platform codebase, with 100K+ downloads, riding on the platform's GraphQL microservices backend.

3 min read100K+ Downloads
100K+ downloadsReact Native + ExpoShared GraphQL backend with the web appStreaks, referrals & push notificationsOne cross-platform codebase

Tech Stack

React NativeExpoTypeScriptNativeWindRedux ToolkitApollo ClientGraphQLFirebase

Overview

The Gcbuying mobile app brings the full fintech platform to phones — trading gift cards and cryptocurrency for Naira, managing wallets, and paying bills on the go. It has passed 100K+ downloads and is a primary channel for day-to-day engagement.

I built it as part of my work as lead developer on GCBuying: the product and brand were the founder's, the engineering was mine. Where the main case study covers the 17-service backend, this is the story of the app that sits on top of it.

Built fresh as one cross-platform codebase

Rather than maintain separate iOS and Android codebases, I built the app from scratch in React Native with Expo, starting in August 2024. One TypeScript codebase ships to both stores, and Expo's tooling keeps iteration fast.

The payoff is concrete: a single codebase roughly halved the effort of shipping a feature versus building and maintaining two native apps — every screen, fix, and release lands on iOS and Android at once.

One backbone, two surfaces

The app is a client of the same backend as the web app — the 17-service NestJS platform, exposed over GraphQL. Using Apollo Client against the platform's code-first GraphQL API meant the mobile app reused the web app's data contracts instead of reinventing them, with Redux Toolkit for local state.

The result is genuine parity: the core flows behave the same on mobile and web because they're driven by the same services.

What the app does

Core fintech flows — gift-card selling, cryptocurrency trading with real-time rates, wallet balances and transaction history, and bill payments. The whole platform, in your pocket.

Engagement and growth — loyalty streaks, referrals, leaderboards, rate alerts, and push notifications, mirroring the growth layer built on the backend. Mobile attribution tracks where installs come from so the growth loops can be measured.

Multi-chain support — assets across multiple chains, including BNB.

Security — biometric login and secure token storage, the table stakes for an app that moves money.

Shipping fast and safe

  • Over-the-air updates via Expo's update channel — ship fixes without waiting on app-store review.
  • Staged rollouts on the Play Store and App Store, with analytics and crash reporting (Firebase) wired in from the first release.
  • Shared observability with the platform, so mobile issues surface alongside the backend instead of in a silo.

Results

  • 100K+ downloads across iOS and Android
  • ~50% faster feature delivery from a single cross-platform codebase
  • Feature parity with the web app, driven by the same GraphQL backend
  • Instant fixes through over-the-air updates

Tech stack

  • Framework: React Native 0.79, Expo SDK 53, TypeScript
  • UI: NativeWind (Tailwind for React Native)
  • State & data: Redux Toolkit, Apollo Client (GraphQL)
  • Platform services: Firebase (analytics + crash reporting), push notifications, secure storage
  • Backend: shares the GCBuying NestJS microservices over GraphQL