2025–2026 · Closed beta
Social Platform
Mobile app, web client, admin panel and landing page · closed beta · product name withheld until public launch
An invite-only social platform for a closed community: a native mobile app, a web client, a moderation admin panel and a marketing landing page on one .NET backend. It is in closed beta with real users, the web client is live, and the apps are going through App Store review. The name is withheld here until the public launch; the architecture, stack and my role are described in full.
Role
Solo developer — product, backend, mobile and web clients, admin panel, landing page, infrastructure.
Outcome
Closed beta with real users; App Store review in progress.
Links
Not publicly available
What I built
- ASP.NET Core 8 Web API with a layered structure: controllers, business-logic layer, EF Core data layer, and a separate xUnit test project covering the matching algorithm, auth and validation.
- PostgreSQL through EF Core 8 with code-first migrations; discovery and matching queries tuned around a configurable scoring algorithm.
- Real-time messaging and presence over a SignalR hub, consumed by the React Native client through the SignalR JavaScript client.
- Authentication with JWT plus one-time-password flows, rate limiting and a common-password blocklist.
- Media pipeline: uploads to Cloudflare R2 (S3-compatible API), server-side resizing with ImageSharp, and an AI moderation step using Google Vision and Gemini before anything becomes visible.
- Background services for self-destructing content and time-boxed features; push notifications; in-app subscriptions through RevenueCat with receipt validation.
- Containerized with a multi-stage Docker build and deployed on Azure with Application Insights telemetry; PostgreSQL migrations run on startup; docker-compose reproduces the stack locally.
- Mobile delivery through Expo EAS with development, preview and production profiles, over-the-air updates for JavaScript changes, and TestFlight for the closed beta; a Next.js admin panel for moderation and staff tooling.
Architecture
Clients
Mobile app
React Native · Expo · TypeScript
Web client
Next.js · same API
Admin panel
Next.js · moderation & staff
Landing page
Next.js · invite funnel
API
.NET 8 Web API
REST · JWT + OTP auth
SignalR hub
messaging · presence
Background services
cleanup · timed features
Data & services
PostgreSQL
EF Core 8 · migrations
R2 media
Cloudflare · ImageSharp resizing
AI moderation
Google Vision · Gemini
Push · payments · email · SMS
Expo push · RevenueCat · Resend · OTP SMS
Infrastructure
API container on Azure
multi-stage Docker build · .NET 8 image
PostgreSQL 15
EF migrations run on startup
Cloudflare R2
object storage · public CDN URL
Application Insights
telemetry · structured logging
Expo EAS
dev / preview / production builds · OTA updates
TestFlight
closed beta distribution
- →Client calls the REST API for everything except chat; chat and presence ride the SignalR connection.
- →Every uploaded image goes R2 → moderation → approval before it is served to other users.
Stack
- Backend
- C# · .NET 8 · ASP.NET Core Web API · EF Core 8 · SignalR · xUnit
- Data & services
- PostgreSQL · Cloudflare R2 · Google Vision · Gemini · RevenueCat · Resend
- Clients
- React Native · Expo Router · TypeScript · Next.js web client · Next.js admin panel · Next.js landing page
- Infrastructure
- Docker · Azure · PostgreSQL 15 · Cloudflare R2 · Application Insights · Expo EAS · TestFlight · Scalar / OpenAPI
Screens
hover to scroll · click to enlarge