
A cross-platform matrimony app built for users in Africa. Profiles load in under half a second on 4G, runs at 60 FPS on budget Android phones, app size is only 14.6MB, and everything works even on slow 2G networks. Multi-step onboarding survives app kills, 5-state message lifecycle builds user trust, and mobile money payments never double-charge.
A look inside how the app is built: the decisions, trade-offs, and engineering that makes it work.
Designed for African markets: works on cheap phones, slow networks, challenging conditions
3-layer architecture: Screens → Hooks → Services. Feature-first folders with zero merge conflicts.
58-60 FPS on $150 phones with 2GB RAM. Profiles load in <500ms on 4G. App only 14.6MB.
Zustand + TanStack Query: ~500 lines vs 3000+ Redux. Cache survives cold starts.
Fast reloads with persisted cache, hardware-backed tokens, and 3-tier photo privacy
Cache persisted to AsyncStorage — kill app, reopen, data shows instantly. 90% fewer loading complaints.
Tokens in hardware secure chip. Screenshots blocked, rooted phones locked out.
3 photo tiers: Public (blurhash) → Match (watermark) → Hard-Locked (no URI until mutual like).
Messages arrive fast and don't get lost. Every message shows its exact delivery state so users always know what happened.
5 visible states: sending → sent → delivered → read → failed. Users always know their message's status.
Client UUID dedup — reconnected mid-send? Server detects duplicate, ignores. Offline queue replays in order.
Custom WebSocket with heartbeats, 5-attempt reconnect with exponential backoff. Offline banner shows instantly.
Mobile money payments that don't lose money, even if users close the app mid-transaction
Unique UUID per payment. Tap 'Pay' twice on slow network? Server charges once. 1 in 20 users double-tapped in testing.
App closed mid-transaction? Resumes exactly where it left off. 5-state payment machine handles every edge case.
PDF receipt via WhatsApp/email. Gift subscriptions via secure link. PawaPay mobile money.
Sign up with phone OTP or Google. Tokens refresh silently in the background.
AI matches based on your preferences. Profiles load instantly with blurhash placeholders.
Every message shows 5 states: sending, sent, delivered, read, or failed. No more guessing if they got your message.
Pay with mobile money. Tap twice on slow network, charged once. Close the app mid-payment, it picks up where it left off.
Three levels of photo privacy. Public photos show blurhash. Match photos get a watermark. Private photos only unlock after mutual like.
Cache survives app restarts. Open, kill, reopen, data shows instantly.
Premium features unlock with subscription. Real-time expiry tracking. Free tier has message limits.
App is only 14.6MB. GPS adapts to save battery. Auto-pauses when network is slow.