All case studies

/ CASE STUDY • #001

Pet Dating App

Full-featured pet dating & social ecosystem with real-time chat, voice messages, and location-based discovery

MobileSaaSReact NativeSocket.IOGoogle MapsReal-time ChatVoice MessagesSocial FeedIAPNext.js
Pet Dating App — featured
Pet Dating App — screenshot 1
Pet Dating App — screenshot 2
Pet Dating App — screenshot 3
Pet Dating App — screenshot 4

CLIENT

Tovy

ROLE

Lead System Architect & Full-stack Developer

DURATION

27 Days

YEAR

2026

/ OVERVIEW

Built an end-to-end pet dating ecosystem consisting of a high-performance React Native mobile app, a Node.js/Prisma backend with Socket.IO, and a glassmorphic Next.js admin panel. The mobile app delivers a rich, swipe-driven matching experience with gesture-based card interactions powered by Reanimated, real-time one-on-one chat with text, images, GIFs, and voice messages, a full social media feed with posts, comments, likes, and bookmarks, and Google Maps integration showing nearby parks, vet clinics, pet stores, and grooming salons. The core innovation is a data-driven tier system that controls every feature and usage limit dynamically without code changes.

The challenge

Building a social dating app requires solving multiple hard problems simultaneously: fluid gesture-driven swiping with physics-based animations, real-time bidirectional communication for chat and presence, voice message recording with live waveform visualization, a social feed with optimistic updates and real-time new-post notifications, and map-based discovery with location permissions—all while maintaining a points economy, content moderation, and tiered monetization.

How I approached it

  • Swipe-to-Match Engine: Built a gesture-driven card stack using React Native Reanimated with pan gestures supporting three directions—right to like, left to pass, up to super like—with spring physics (damping 26–28, stiffness 320–360), velocity-aware fly-off animations, ±7° rotation, and stacked background cards with progressive scaling.
  • Real-time Chat via Socket.IO: Engineered a full-duplex messaging system using Socket.IO with Redis adapter for horizontal scaling. Supports text, image, GIF, and audio messages with idempotency keys, typing indicators (5s timeout), online/offline presence tracking via Redis, read receipts, message reactions, edits, deletions, and rate limiting (30 msgs/min per user).
  • Voice Message System: Implemented WhatsApp-style voice recording using expo-audio with live animated waveform bars (28 bars), slide-left-to-cancel, slide-up-to-lock hands-free, 800ms minimum / 60s maximum duration, and playback with seekable 40-bar waveform, speed control (1x/1.5x/2x), and haptic feedback.
  • Social Media Feed: Built a complete social layer with post creation (text, images, videos, GIFs, up to 10 hashtags), nested threaded comments with visual connectors, likes, bookmarks, sharing, and real-time new-post notifications via Socket.IO that surface a 'New posts' pill without jarring scroll resets. Powered by Shopify FlashList for buttery-smooth virtual scrolling.
  • Google Maps Integration: Integrated react-native-maps with Google provider and expo-location for GPS-based discovery. Built a backend proxy to Google Places API (key never exposed client-side) showing nearby parks, pet stores, vet clinics, grooming salons, and pet-friendly restaurants with ratings, photos, and deep links to Google Maps for directions. Results cached 15 minutes in AsyncStorage.
  • Location-Based Discovery: Implemented distance-filtered pet suggestions using GPS coordinates, city picker with search and current-location detection, reverse geocoding for city/region names, and privacy controls (hide location toggle, location obfuscation on profiles).
  • Blind Match Mode: Built an anonymous matchmaking feature with Redis-backed queuing (120s TTL), shared icebreaker questions, mutual accept/pass decisions, and automatic match creation on mutual acceptance—all with content filtering and block-check enforcement.
  • Interceptive Middleware & Tier System: Developed a FeatureGate service that intercepts every API request to validate permissions and quotas (swipes/day, super likes, boosts, rewind, read receipts, advanced filters) via Redis-cached tier configurations across Free, Premium, and Tovy Pro tiers.

/ OUTCOME

What it did in the world

Complete Social Dating App

Shipped a full Tinder + Instagram hybrid for pets—swipe matching, real-time chat with voice messages, social feed with posts/comments/likes, and location-based discovery in a single polished mobile app.

Real-time Everything

Socket.IO powers instant messaging, typing indicators, online presence, match notifications, new-post alerts, and blind match events—all with Redis-backed horizontal scaling and sub-50ms latency.

Voice Messages & Rich Chat

Built a WhatsApp-grade voice message experience with live waveform recording, slide-to-cancel gestures, seekable playback with speed control, plus support for images, GIFs, reactions, and message editing.

Map-Driven Discovery

Google Maps integration surfaces nearby pet-friendly locations (parks, vets, stores, groomers) with ratings and directions, while location-based filters power distance-aware pet matching.

Points Economy & IAP

Implemented a full virtual economy with points earned through engagement and spent on premium actions, plus Apple StoreKit and Google Play Billing integration for subscription tiers.

Enterprise Moderation

Automated keyword filtering with severity levels, bot detection via swipe pattern analysis, report center with rate limiting, and a human-in-the-loop admin review workflow.

/ STACK

Built with

MOBILE

  • React Native
  • Reanimated 2
  • react-native-maps (Google)
  • expo-location
  • expo-audio
  • TanStack Query
  • Zustand
  • NativeWind
  • Shopify FlashList
  • react-native-iap

BACKEND

  • Node.js (Express 5)
  • Prisma 6 / PostgreSQL
  • Redis
  • Socket.IO (Redis Adapter)
  • Cloudinary
  • Google Places API

ADMIN PANEL

  • Next.js 16 (App Router)
  • React 19
  • Framer Motion
  • Shadcn/UI
  • Recharts