🚀 Getting Started
Naira Exchange ships as two independent apps that share one product and one configuration philosophy: never hardcode business config, and build against mock data shaped exactly like the real endpoints will return.
| App | Stack | Purpose |
|---|---|---|
| Website | Next.js 16 (App Router), TypeScript, Tailwind v4 | Marketing, market info, and a mobile-app acquisition funnel. No real trading or auth happens here. |
| Mobile App | Expo (React Native), TypeScript, React Navigation, TanStack Query, Zustand | The actual product: auth, wallet, trading, gift cards, KYC, settings. |
Run the website
cd crypto-exchange
npm install
cp .env.local.example .env.local
npm run devRun the mobile app
cd mobile-app
npm install
cp .env.development.example .env.development
npm run start:dev # press i / a, or scan the QR with Expo GoBoth apps default to mock mode (
NEXT_PUBLIC_USE_MOCKS / EXPO_PUBLIC_USE_MOCKS = true). Every function in the API layer returns fixture data shaped exactly like the real response, so switching a base URL and flipping mock mode off requires no UI changes.