ZOOP logo

Every feed on ZOOP, ranked for the person scrolling it

ZOOP is a creator-first social app on iOS, Android and the web. We designed and built its recommendation system from scratch: the data pipeline, the models and the AWS infrastructure behind every personal feed.

ZOOP: live product
ZOOP: mobile
Client
ZOOP
Industry
Creator network
Services
Recommendations, ML, AWS
10K+

monthly active users get a personal feed

0 → 1

recommendation system, designed and built from scratch

3

platforms on one feed: iOS, Android and web

AWS

data pipeline, models and infrastructure, end to end

The challenge

ZOOP promises creators a community-first algorithm, not For You page chaos. That promise lives or dies in the feed. There was no recommendation system to build on, and the feed had to feel personal from a fan's first session while giving creators with small audiences a real chance to be seen.

Our approach

We treated the feed as a product, not a model. Every view, like, comment and share becomes a signal in a streaming pipeline. Retrieval narrows all posts to a shortlist per person, a ranker orders it, and cold-start rules give new users and new creators a fair first shot. One senior team owns it all on AWS.

On a creator-first app, the feed is the promise. It has to be fair to the fan and to the creator.

What we did

01

Signal pipeline

Events from iOS, Android and the web stream through Kinesis, get checked by Lambda and land in two places: a DynamoDB feature store for live ranking and an S3 lake for retraining.

  • Event stream from iOS, Android and web
  • Validation and deduplication
  • User and post feature store
  • Raw event lake for retraining
ZOOP: Signal pipeline

02

Retrieval and ranking

A two-tower model and ANN search pull candidates from followed creators, channels, similar users and trends. A ranker scores them on engagement, then rules keep the feed varied and fair.

  • Two-tower candidate retrieval
  • ANN search over post embeddings
  • Ranking on watch time and engagement
  • Cold-start slots for new creators
ZOOP: Retrieval and ranking

03

AWS infrastructure

The feed service keeps warm feeds in ElastiCache, reads features from DynamoDB and scores on a SageMaker endpoint. Models retrain on a schedule, pass offline evaluation and ship through a registry.

  • Feed service with a cache layer
  • SageMaker training and serving
  • Model versions with offline evaluation
  • Monitoring for latency and errors
ZOOP: AWS infrastructure

How it works

  1. 1

    App events

    Views, watch time, likes, comments and shares

  2. 2

    Event stream

    Kinesis carries events, Lambda checks and dedupes them

  3. 3

    Feature store

    DynamoDB keeps fresh user and post features

  4. 4

    Retrieval

    Two-tower model and ANN search pick candidates

  5. 5

    Ranking

    A ranker orders them, rules keep the feed fair

  6. 6

    Feed API

    FastAPI serves the feed, ElastiCache keeps it warm

  7. 7

    Retraining

    SageMaker retrains the models on the S3 event lake

The live product

zoop.com

ZOOP: full page
ZOOP: mobile screen 1
ZOOP: mobile screen 2
ZOOP: mobile screen 3

Results

  1. 0110,000+ monthly active users open a feed ranked for them alone
  2. 02ZOOP owns its algorithm: built from scratch, not rented from a third-party feed API
  3. 03Cold-start rules give new users a relevant feed and new creators a first audience
  4. 04One pipeline on AWS, from app event to ranked feed, run by one senior team

Built with

Models
Python · PyTorch · scikit-learn · XGBoost
Retrieval
Two-tower model · ANN (HNSW) · FAISS · OpenSearch
Data pipeline
Kinesis · Lambda · DynamoDB · S3
Serving
SageMaker · ElastiCache · FastAPI · Docker

Services in this case

Next case · NVP

Payouts and paperwork for companies hiring freelancers

Let's talk

Got a project? Let’s scope it in 30 minutes.

Tell us what you're building. You'll get a straight answer on timeline, team and approach on the first call.

Reply the same dayTalk to a partnerNo sales pitch