Business banking app
A complete Expo Router app for a small-business bank account: onboarding once, phone + OTP sign in, a live revenue dashboard, cards you can reveal and freeze, slide-to-pay transfers, profile and settings.
What’s inside
- Flow
- Onboarding shows once, then phone number + one-time code, then the tabs. Signing out returns to sign in. The session is saved on the device (AsyncStorage) and guarded with Expo Router’s Stack.Protected.
- Tabs
- Home (scrubbable revenue chart, KPIs, pull to refresh), Cards (swipe between cards, reveal the number or CVV, freeze), Pay (payee, amount, slide to send) and Profile.
- Payments
- A transfer made on Pay appears at the top of Home’s transactions straight away. The send itself is a stand-in — call your payments API from the slider’s onConfirm.
- Settings
- Pushed from Profile. Appearance (System / Light / Dark) re-themes every kit component instantly.
- Your backend
- SMS code handlers in app/sign-in.tsx and the transfer in components/fintech-app/pay-screen.tsx are stand-ins that wait and succeed. Cards, payees and the dashboard numbers live in lib/fintech-app/data.tsx.
Installation
A whole app: start from a new Expo Router project (npx create-expo-app@latest) and run it in the root. It writes app/_layout.tsx, the screens and every block they use, replacing the starter screens, and installs the dependencies. Then npx expo start — it runs in Expo Go.

