React Native marketplace · client
Lokal
A marketplace app where travelers pay to chat with verified locals for honest city advice, and locals earn from what they know.
Built and through client QA
- When
- May – Jul 2026
- My part
- Built the mobile app (all 100 commits), led the team on the backend and the web app, and built the admin console
- Credit
- Built with Creative Mantra developers; I reviewed and merged their 41 pull requests on the web app. Screens shown run locally on demo data.
- App screens
- 112
- Admin modules
- ~30
- Team commits
- 390+
- E2E test files
- 53
Chapter 1 of 8 ·
Payments, email and notifications from day one
A two-sided marketplace needs money moving in both directions, so the backend started with payments, email and push notifications in place, split into 24 route modules.
Chapter 2 of 8 ·
One app, two kinds of user
The app moved from a React web prototype to React Native. Travelers search cities, browse locals' stories and open paid chats. Locals publish stories that expire, answer questions and get paid.
- Paid chats with quiet hours and daily limits
- A verification flow with ID upload to become a local
- Ranked city search and a live "city pulse"
$ git log Initial commit
Chapter 3 of 8 ·
The same product in a browser
A full React web app for travelers and locals alongside the phone app: sign-up with email codes or Google and Apple, chats, stories, earnings and payouts, with 53 Playwright end-to-end tests. I ran the repo and merged the team's 41 pull requests.
$ git log feat: implement OAuth authentication flow with Google and Apple support, including user onboarding and account management screens.
Chapter 4 of 8 ·
Your local replied
Push notifications on iOS and Android, so a traveler hears back while they're still standing in the street they asked about.
$ git log feat: implement device token management and FCM integration for push notifications
Chapter 5 of 8 ·
Locals get paid, properly
A wallet, tax information, withdrawals and payouts through Stripe Connect, with fees and net amounts tracked on every withdrawal and multi-currency support.
$ git log feat: implement payout support flow and tax documentation screens with router integration
Chapter 6 of 8 ·
A control room with thirty modules
The admin console runs the marketplace: applications to become a local, a story review queue, trust and safety, appeals, moderation rules, withdrawal requests, support tickets, city management and live platform metrics.
$ git log feat: implement admin dashboard modules including Escalations, SystemHealth, AuditLog, PlatformMetrics, Appeals, Policies, and ModerationRules
Chapter 7 of 8 ·
Through the client's test rounds
The client ran structured test journeys through the app. Drafts now save themselves, newly approved locals get a welcome moment, and the app reached version 1.0.4.
Chapter 8 of 8 ·
Never charge twice, never send twice
On a flaky phone connection a retry must not mean a second charge or a duplicated message, so payments and messages are idempotent. Admins get moderation, appeals and safety reports.
$ git log feat: add idempotency for payments and chat messages, implement banking data validation, and normalize OAuth error codes