Web-Based Face Recognition Platform
Face recognition platform that finds and removes unauthorised intimate images online, with verified identity and GDPR-grade privacy.

Web-Based Face Recognition Platform overview
We built a web-based face recognition platform whose job is to automatically identify and remove unauthorised intimate images from online networks. A person who has been targeted proves their identity, the system derives a cryptographic hash of their facial features, scans for matching imagery, and drives the removal workflow. Because the platform handles some of the most sensitive personal data imaginable, the ingestion, analysis and storage pipelines were isolated from public networks from the first design sketch.
Next Olive took the product from concept to a scaled, enterprise-grade system, and did it under a hard deadline: the minimum viable product was created and launched at Disrupt TechCrunch 2017 within six weeks. The platform was designed from the start to operate simultaneously in the United States and Romania, which meant handling cross-border data management, differing storage regulations and different network infrastructures in one codebase. The scope covered a cross-platform mobile ID verification pipeline, an interactive single-page web application, a distributed backend processing matrix that scales on demand, and the full data lifecycle: automated image scanning, facial-feature hashing, real-time video verification and automated content removal. We ran the whole SDLC, from architecture and rapid prototyping through testing to cloud deployment, in two-week Agile sprints tracked in Trello.
Challenge in Digital Privacy operations
Three constraints defined the engineering problem. First, speed: a six-week window to a public launch left no room for a monolith that would need rewriting later, so the architecture had to be decoupled from day one while still shipping vertical slices every sprint. Second, security: the platform processes intimate imagery and biometric vectors, so every layer had to satisfy GDPR, HIPAA and SOC 2 principles, including the right to erasure and data localisation for EU citizens. Third, trust: an image-removal service is only as good as its identity check. If a static photo or a recorded clip could impersonate a victim, the system could be turned into a tool for harassment, so liveness had to be proven, not assumed.
On top of that, the face detection workload is bursty. Large web sweeps generate heavy image-processing traffic for short periods, and the deep learning inference had to scale independently of the web tier without ever exposing the recognition engines or databases to the public internet.
Solution architecture & delivery
The backend is a Web API-based n-tier architecture in C# and ASP.NET MVC using the MVC Repository Pattern, with presentation, business logic, data access and external integrations kept in separate layers. Ninject provides dependency injection, binding abstract repository interfaces to concrete Entity Framework classes at startup and managing PostgreSQL contexts with request-scoped lifecycles so connections are created and disposed cleanly. A generic repository base class handles standard CRUD, while specialised repositories cover complex queries. A template parsing mechanism pulls layout templates from the database and substitutes system text and user parameters, so administrators can change notifications, emails and system messages without a code deployment. A timezone module stores every timestamp in UTC and converts it in the C# layer to the user's locale, so logs and scheduled scans read correctly in New York or Bucharest.
The user portal is a responsive Angular single-page application with Bootstrap and jQuery. Custom User Controls and Custom Controls package secure multi-file drag-and-drop upload zones, 2FA prompt windows and live scanning status bars into reusable components, and third-party controls provide analytical charts, multi-currency display and interactive system logs. The SPA talks to the backend through token-based authentication: after an Okta login the C# backend issues a signed JWT that the frontend attaches to every request, so the servers hold no session state. Okta also enforces password rules, tracks malicious login attempts and requires a time-based 2FA passcode before the main dashboard opens.
Face detection and recognition run in a dedicated Python API, separate from the .NET web servers, so it can use optimised machine learning frameworks and scale on its own. The ASP.NET business layer sends an encrypted asynchronous HTTP POST with the image payload; the Python service applies image transformation and facial landmark localisation and returns coordinates, landmark mappings and confidence scores as JSON. For mobile ID verification the pipeline normalises smartphone photos of identity documents with contrast adjustment, edge detection and histogram equalisation, verifies the document, extracts the embedded photograph and compares it against a live selfie or video stream using deep learning feature vectors to produce an accuracy score. Two-way video verification through the Twilio API opens an encrypted WebRTC session, samples frames at intervals and passes them to the Python models to confirm a living person is present, which defeats static photos and pre-recorded playback.
Infrastructure is declared in Terraform: VPCs, private subnets, internet gateways and route tables provisioned identically in the US and Romania across a hybrid AWS and Azure layout. Public load balancers terminate TLS 1.3 and forward to internal clusters; databases and recognition engines live in restricted private subnets reachable only on explicit ports (5432 for PostgreSQL, 5000 for the Python API). The ASP.NET backend, Angular frontend and Python services are packaged as minimal Docker images, vulnerability-scanned in the registry, and run on Kubernetes with Horizontal Pod Autoscaling that adds Python API pods during heavy web sweeps and scales them back when the queue clears. Global load balancers health-check the entry nodes in both countries and reroute traffic within seconds if a region fails; PostgreSQL runs as a replicated cluster whose standby is promoted automatically without dropping sessions. CrowdStrike runs on every node, and a central log pipeline indexes the C# and Python services together with custom metrics on face recognition processing time.
Key features of the Web-Based Face Recognition Platform
- Automated image scanning and content removal workflow driven by cryptographic hashes of facial features
- Deep learning face detection and recognition served by an isolated Python API returning landmarks and confidence scores
- Mobile ID document verification with contrast adjustment, edge detection and histogram equalisation, matched to a live selfie
- Two-way live video liveness verification over Twilio WebRTC, sampled frame by frame against the recognition models
- Okta identity governance with mandatory 2FA and stateless JWT authentication on every Web API call
- Data localisation routing EU citizens to Romania-based PostgreSQL nodes and US users to US nodes, with automated GDPR erasure routines
- Admin and Controller dashboard with coupon management, feedback ingestion, an Amazon Pay and PayPal invoicing engine and a support ticket system
- Database-driven template parsing so notifications and emails can be changed without recompiling
Who this platform is for
This architecture is relevant to organisations building identity-gated privacy or trust-and-safety products: image and content takedown services, biometric identity verification for regulated onboarding, and any application where a live human must be distinguished from a photo or recording before a sensitive action is allowed. It also serves teams that must deploy the same system in more than one legal jurisdiction, with per-region data residency, right-to-erasure automation and SOC 2, HIPAA and GDPR controls built into the infrastructure rather than bolted on.
Impact & results
- MVP created and launched at Disrupt TechCrunch 2017 within six weeks of starting development
- Single codebase operating simultaneously in the United States and Romania, with EU data confined to Romania-based nodes
- Automated erasure routines purge every uploaded image and facial biometric vector on account termination, satisfying the GDPR right to erasure
- Live Twilio video verification blocks identity spoofing with static photos or pre-recorded video
- Python recognition pods scale out automatically during large web sweeps and back down when the queue is clear, controlling cloud cost
- Cross-region failover reroutes traffic to the healthy country within seconds; database failover promotes a standby without dropping user sessions
- Administrators change notifications, emails and system messages through stored templates with no code change
FAQ about the Web-Based Face Recognition Platform
What does the Web-Based Face Recognition Platform do?
It automatically identifies and removes unauthorised intimate images from online networks. A user proves who they are with an ID document plus a live selfie or video, the platform hashes their facial features, scans for matching imagery, and runs automated content removal workflows. It operates simultaneously in the United States and Romania, and the MVP launched at Disrupt TechCrunch 2017 after six weeks of development.
Which technologies power the Web-Based Face Recognition Platform?
An Angular, Bootstrap and jQuery single-page app; an ASP.NET MVC and C# backend with Ninject dependency injection, Entity Framework and a JWT-secured Web API; a separate Python API running the deep learning face detection models; PostgreSQL; Twilio for two-way video; Okta with 2FA; Terraform, Docker and Kubernetes across AWS and Azure; CrowdStrike for runtime protection; and Amazon Pay and PayPal for billing.
How does the platform prevent identity spoofing?
Uploaded ID documents are normalised with contrast adjustment, edge detection and histogram equalisation, the embedded photo is extracted and compared with a live selfie or video using deep learning feature vectors, and an accuracy score is produced. For sensitive actions such as requesting deletion of discovered imagery, an encrypted two-way Twilio video session is opened and frames are sampled and sent to the Python models to confirm a living person, blocking static photos and pre-recorded playback.
How is sensitive data protected across the US and Romania deployments?
The architecture follows GDPR, HIPAA and SOC 2 baselines. EU citizen data is routed only to Romania-based nodes and US data to US nodes. Load balancers enforce TLS 1.3, PostgreSQL uses AES-256 column-level encryption for facial vectors and keys, automated routines purge all images and biometric vectors on account termination, databases and recognition engines sit in private subnets, and CrowdStrike monitors every Kubernetes node.
Web-Based Face Recognition Platform product screens
Build your next privacy or identity product with Next Olive
Share your requirements β we will propose scope, timeline and stack within one business day.