Social Connect
Eight separate dating platforms, live streaming, video calling and games in a single app.
- iOS
- Android
- 2023
- My own product
Screenshots
Click any image to enlarge it.
About the app
Social Connect was a dating app, but unlike a conventional one it brought eight separate platforms under one roof: anonymous chat, map-based discovery, swipe matching, language practice, stories, an adult platform, and the option to become a creator inside the app and earn from it.
On top of that sat live streaming infrastructure, voice and video calls, real-time chat, a gift economy, live trivia shows and prize games. I ran the entire product on my own — architecture, development, backend and app store releases.
It is a 2023 project, meaning it was written before AI-assisted coding tools became widespread. Looking back today, holding this many different subsystems together in a single product is the work that taught me the most.
The app is no longer in the stores, and there was not a single reason for that. Because I hosted video calling on my own server, infrastructure was a constantly running cost; each of the eight platforms needed its own maintenance, and past a certain point keeping all of them running alone was no longer possible. When problems on the app store policy side were added to that, I pulled the app myself. The technical side worked; what stopped me was the cost of keeping a system of this scale alive with one person. This is where I learned to weigh server costs against the product's revenue.
Highlights
- Eight separate platforms: anonymous chat, map discovery, swipe matching, language practice, stories, an 18+ platform, creator streaming
- Live streaming: going live, watching, live comments and earning as a creator
- Voice and video calling — built on JitsiMeet infrastructure
- Instant message translation: translating an incoming message into any language
- Gift economy: sending virtual gifts to creators and other users
- Rich messaging: replies, GIFs via GIPHY, photo, video and voice messages
- Spotify integration: sharing music on the profile and in chat
- Photo and video editor inside the app
- Anonymous story sharing
- Games: online and offline games, prize games, live trivia shows
- Location-based discovery — finding nearby people on a map
- In-app purchase and subscription infrastructure
Technologies used
112 technologies · 12 categoriesLanguages and App Layer
- Swift (iOS)
- Java (Android)
- Kotlin (Android)
- UIKit / SwiftUI
- XML layout / Jetpack Compose
- MVC / MVVM architecture
- GCD / Kotlin Coroutines
Backend and Data
- Firebase Firestore
- Real-time listeners
- Firestore security rules
- Firebase Storage
- Cloud Functions
- Firebase Messaging + APNs
- Authentication and sessions
- Firestore offline cache
- Batch write
- Cursor-based pagination
- Denormalization
- Counter fields
- Cloud Functions triggers
- Scheduled jobs
- Data migration
Real-Time and Calling
- JitsiMeet SDK
- WebRTC
- Self-hosted Jitsi (DigitalOcean)
- Live stream delivery
- Camera and microphone permissions
- AVAudioSession / audio management
- Game state synchronization
- STUN / TURN configuration
- Audio routing (speaker / headphones)
- Keeping calls alive in the background
- Reconnecting after network drops
- Call state synchronization
- Server resource and scale monitoring
Media and Content Creation
- AVFoundation (iOS)
- Android camera / MediaCodec
- PHPicker / media picker
- Image processing (Core Image)
- Video trimming and export
- Audio recording and playback
- Video player integration
- Image and video caching
Service Integrations
- Spotify API
- GIPHY API
- Translation API integration
- OAuth authorization
- URLSession (iOS)
- REST / JSON handling
Location and Maps
- Core Location (iOS)
- MapKit (iOS)
- Google Maps SDK (Android)
- FusedLocationProvider (Android)
- Location permission flows
- Geo proximity queries
Payments and Revenue
- StoreKit (iOS)
- Google Play Billing (Android)
- Subscription management
- Server-side receipt validation
- Virtual token economy
- Creator revenue sharing
Networking and Data Transfer
- HTTP client (Android)
- JSON parsing (Codable)
- Retry and timeout handling
- Offline state management
- Image caching
- Download and upload queue
- Multipart file upload
- Bandwidth-based quality
Security and Privacy
- Keychain (iOS)
- EncryptedSharedPreferences (Android)
- HTTPS and ATS
- Auth token management
- Session refresh
- Permission usage descriptions
- Account deletion flow
- Server-side authorization checks
- Sensitive data masking
UI States and Accessibility
- Dark mode support
- Dynamic Type
- Safe area handling
- Empty / loading / error states
- Skeleton loading
- Pull to refresh
- Keyboard and focus management
- Deep linking (Universal Links)
- VoiceOver / TalkBack labels
Testing, Debugging and Profiling
- Xcode Instruments
- Android Profiler
- LLDB
- Logcat
- Memory leak tracking
- Network traffic inspection
- Reading crash reports
- Testing on real devices
- Testing across screen sizes
Tools and Release Process
- Xcode
- Android Studio
- CocoaPods
- Gradle
- Git
- App Store Connect
- Google Play Console
- Open source libraries (GitHub)
- TestFlight
- Play Console internal testing
- Version and build numbering
- Signing and provisioning profiles
- App Store review process
- App Privacy / Data Safety form
- Store assets and ASO copy
- App size optimization
Idea, design, UI, code, store release and post-launch maintenance — I handled the entire process end to end on my own. No team, no agency, no outsourcing.
Development notes
- Languages and approachThe iOS side was written in Swift and the Android side in Java and Kotlin. No cross-platform framework was used; both apps were built with their own platform's native tooling. I have been doing mobile development since 2020.
- No AI assistanceAll of the code was written by hand. This project was built before AI coding tools like Claude Code and Codex became widespread — no such tool existed at the time.
- DependenciesMany open source GitHub libraries and CocoaPods packages were used. Dependency management ran through CocoaPods on iOS and Gradle on Android.
- Video calling infrastructureJitsiMeet was self-hosted on my own server rather than used as a managed service (DigitalOcean). Server setup, media delivery and scaling were all on me.
- ScaleEight separate platforms, live streaming, video calling and games in a single app. Keeping this many different subsystems alive in the same codebase is the work that taught me the most.
- Testing and debuggingTested on real devices, across different screen sizes and on weak network conditions. After launch I read crash reports and shipped fixes release by release.
- Release processI ran the review process for both stores myself: App Store Connect and Google Play Console setup, privacy declarations (App Privacy / Data Safety), release notes, store assets, and fixes based on rejection reasons.
- Product ownershipIdea, design, development, backend, store release and post-launch maintenance — I ran the entire process on my own.
Let's talk about Social Connect
I am happy to walk through the technical details, the problems I ran into and how I solved them.