iOS & Android ReleaseLive in both stores

Saymico & Parpple: dating apps, shipped end to end

Two consumer dating apps taken from design to the App Store and Google Play: matching, AI photo verification, real-time chat and a moderation console.

Photo trust score
99.4%
Store approval
1st Submission
Stack
React Native / Node.js / WebSockets / AI verification
IP
Transferred to the client
01 · The challenge

Saymico and Parpple are two consumer dating apps targeting the Indian market. The central challenge in dating apps is trust. Users will not engage if they suspect fake profiles, and a single bad experience (harassment, catfishing) can permanently damage an app's reputation. Both apps needed to launch on iOS and Android from a single codebase and be approved by app stores on first submission.

Constraints

  • iOS App Store and Google Play have strict guidelines for dating apps, and moderation tools are required
  • Photo verification had to be accurate enough to prevent fake profiles without adding significant friction
  • Real-time chat at consumer scale requires a robust WebSocket architecture
  • A moderation console for the client's team was a hard requirement before launch
02 · What we built

AGA built both apps using React Native (Expo) sharing a single codebase with platform-specific adjustments for iOS and Android. An AI photo verification system compares profile photos against a liveness selfie to compute a trust score. Real-time chat is delivered over WebSockets with end-to-end message delivery guarantees. A web-based moderation console allows the client team to review reports, suspend accounts, and manage the content policy.

03 · Architecture

How the system is structured.

Simplified. Implementation details are withheld where they are commercially sensitive.

iOS & Android Release · request flow8 stages
  1. 01

    React Native app

    Single codebase (Expo) compiling to iOS and Android

  2. 02

    User onboarding

    Phone OTP verification, profile creation, photo upload

  3. 03

    AI liveness check

    Selfie compared to the profile photo with computer vision to compute a trust score

  4. 04

    Matching engine

    Location-based candidate generation, preference filtering, match scoring

  5. 05

    WebSocket chat

    Node.js WebSocket server with persistent connections, delivery receipts and typing indicators

  6. 06

    Media storage

    Profile photos and chat media stored in S3 with CDN distribution

  7. 07

    Report pipeline

    User report → review queue → moderation console → action

  8. 08

    Moderation console

    Web dashboard for client team: view reports, review profiles, take action

04 · Engineering detail

What makes it hold up.

  • Trust scores computed once at upload and cached, not re-run on every view
  • WebSocket connections stateless-compatible: server state in Redis so any backend node handles any connection
  • Message delivery guaranteed by client-side retry with server-side deduplication on message ID
  • Photo moderation runs asynchronously: the upload completes immediately and approval doesn't block
  • All profile photos pass through automated NSFW detection before becoming visible
  • Match candidates pre-computed in background jobs, so swipes read from cache instead of live queries
05 · Decision log

Key decisions, and why we made them.

  1. 01

    Expo (React Native) instead of separate native codebases

    Two separate native codebases doubles engineering effort and creates divergence risk. Expo provides native performance for the features required (camera, push notifications, location) while allowing a single development team to own both apps.

  2. 02

    Custom AI trust scoring instead of third-party verification service

    Third-party face verification services charge per verification and introduce a dependency on an external API's uptime and pricing. AGA built the trust scoring pipeline using open-source computer vision models, which lowered the per-check cost and kept full control over the algorithm.

  3. 03

    WebSocket chat instead of push notifications for real-time delivery

    Push notifications are delayed, unreliable on some Android OEMs, and cannot carry full message content for privacy reasons. WebSockets provide sub-second delivery for active users and fall back to push notifications for background delivery.

Next step

Need something similar?

Describe your project and we'll scope it, design the architecture and send a fixed-price quote within 24 hours.

Written scope
Within 24 hours
Pricing
Fixed per milestone
Ownership
100% of code and IP