INDUSTRY WORKS

marcosdijuliol@gmail.com

INDUSTRY WORKS

marcosdijuliol@gmail.com

Streaming

Designing Social Discovery as a Two-Sided System

Designing Social Discovery as a Two-Sided System

Bringing the recommendations people already make on WhatsApp back inside the product.

Design Studio Hero Image
Design Studio Hero Image

Product

Mercado Play

Role

Product Designer

Market

Buenos Aires, Argentina

Date

2026

Overview

Mercado Play is Mercado Libre's free streaming platform: films, series, documentaries, kids' content and reality shows, available at no cost inside an app most people in Argentina already have.

This is concept work built on a scenario brief. The premise: usage frequency had dropped 4% month over month, and interviews surfaced four recurring situations around how people decide what to watch.

I designed a system that moves peer recommendation inside the product — and, more importantly, one that works on day one, before any social network exists.

Overview

Mercado Play is Mercado Libre's free streaming platform: films, series, documentaries, kids' content and reality shows, available at no cost inside an app most people in Argentina already have.

This is concept work built on a scenario brief. The premise: usage frequency had dropped 4% month over month, and interviews surfaced four recurring situations around how people decide what to watch.

I designed a system that moves peer recommendation inside the product — and, more importantly, one that works on day one, before any social network exists.

Problem identification

Problem identification

Recommendations between friends and family already happen constantly. They just happen everywhere except inside the product.

Someone hears about a series at work and messages it to themselves on WhatsApp so they don't forget. Someone else ignores critic scores entirely and only acts on what people she actually knows tell her. An older viewer wants to open the app and find what his family picked, without hunting. A son ends up googling actor names because his father can't remember the title he wanted to recommend.

Four different situations, one shape: the recommendation survives, the context doesn't. By the time someone opens the app, the title, the sender and the reason why are all gone.

That leaks straight into the business problem. A recommendation is a reason to come back. When it dissolves outside the product, so does the return visit.

Recommendations between friends and family already happen constantly. They just happen everywhere except inside the product.

Someone hears about a series at work and messages it to themselves on WhatsApp so they don't forget. Someone else ignores critic scores entirely and only acts on what people she actually knows tell her. An older viewer wants to open the app and find what his family picked, without hunting. A son ends up googling actor names because his father can't remember the title he wanted to recommend.

Four different situations, one shape: the recommendation survives, the context doesn't. By the time someone opens the app, the title, the sender and the reason why are all gone.

That leaks straight into the business problem. A recommendation is a reason to come back. When it dissolves outside the product, so does the return visit.

Assumptions I was working from


I treated these as hypotheses, not findings — they came from the scenario, not from research I ran.


Trust is social before it is algorithmic. People act on what someone they know says, over what a system or a critic says.

How I'd test it: compare play-through rates on peer-attributed titles versus algorithmic rows.


Remembering is the real friction. The failure isn't deciding, it's retaining the title long enough to act on it.

How I'd test it: measure the gap between when a title is mentioned externally and when it's played, if ever.


The behaviour already exists off-platform. WhatsApp is where this lives today.

How I'd test it: survey how people currently save titles others mention.


There is nowhere for it to land. No surface holds what your circle has recommended.

How I'd test it: usability sessions on where people expect to find a title someone sent them.

Assumptions I was working from


I treated these as hypotheses, not findings — they came from the scenario, not from research I ran.


Trust is social before it is algorithmic. People act on what someone they know says, over what a system or a critic says.

How I'd test it: compare play-through rates on peer-attributed titles versus algorithmic rows.


Remembering is the real friction. The failure isn't deciding, it's retaining the title long enough to act on it.

How I'd test it: measure the gap between when a title is mentioned externally and when it's played, if ever.


The behaviour already exists off-platform. WhatsApp is where this lives today.

How I'd test it: survey how people currently save titles others mention.


There is nowhere for it to land. No surface holds what your circle has recommended.

How I'd test it: usability sessions on where people expect to find a title someone sent them.

Benchmarking

Benchmarking

Why the category never solved this

Four products with the same problem. None landed a lasting answer.

Why the category never solved this

Four products with the same problem. None landed a lasting answer.

Netflix

Tried

Friends, then Facebook

Ended as

Shareable links out

HBO Max

Tried

Never built it

Ended as

Synchronous co-watching

Apple TV

Tried

No social graph

Ended as

Messages as the layer

IMDb

Tried

Years of user requests

Ended as

Public list URLs

Netflix — Tried: Friends (2004–2010), then Facebook integration. Ended as: shareable links out. Friends was killed for low usage; the Facebook-powered private recommendation was abandoned too. Today the answer is Moments — save a scene, send the link through WhatsApp or Instagram, the recipient lands on that exact point in their own app. No social graph at all.


HBO Max — Tried: never built peer recommendation. Ended as: SharePlay, synchronous co-watching over FaceTime or Messages. Requires Apple hardware, an ad-free plan, and both people subscribed. It answers "let's watch together now", not "watch this when you can".


Apple TV — Tried: no in-app social graph. Ended as: Messages is the social layer. Anything sent through Messages surfaces on its own in a Shared with You row, carrying the sender's name; tapping the name returns you to the conversation. The cold start problem is solved by not building a network.


IMDb — Tried: years of documented user requests for friends, shared lists and rating comparison. Ended as: public list URLs. The demand is on the record in their own forums and was never shipped.


Every attempt ran into the same wall. In paid streaming, a recommendation is an invitation to a purchase — the person receiving it needs a subscription before they can act on it. Mercado Play is free. The wall isn't there.

Netflix — Tried: Friends (2004–2010), then Facebook integration. Ended as: shareable links out. Friends was killed for low usage; the Facebook-powered private recommendation was abandoned too. Today the answer is Moments — save a scene, send the link through WhatsApp or Instagram, the recipient lands on that exact point in their own app. No social graph at all.


HBO Max — Tried: never built peer recommendation. Ended as: SharePlay, synchronous co-watching over FaceTime or Messages. Requires Apple hardware, an ad-free plan, and both people subscribed. It answers "let's watch together now", not "watch this when you can".


Apple TV — Tried: no in-app social graph. Ended as: Messages is the social layer. Anything sent through Messages surfaces on its own in a Shared with You row, carrying the sender's name; tapping the name returns you to the conversation. The cold start problem is solved by not building a network.


IMDb — Tried: years of documented user requests for friends, shared lists and rating comparison. Ended as: public list URLs. The demand is on the record in their own forums and was never shipped.


Every attempt ran into the same wall. In paid streaming, a recommendation is an invitation to a purchase — the person receiving it needs a subscription before they can act on it. Mercado Play is free. The wall isn't there.

How it works where it does exist

Three products that solved it. Three questions, asked the same way of each.

How it works where it does exist

Three products that solved it.

Cold start

Manual following

Friend requests

Invite link, 7 days

Attribution

Full, feed-wide

Named, semi-public

Private thread

Directed sending

None by design

Buried in redesigns

Core of the feature

Letterboxd

Goodreads

YouTube

Letterboxd is broadcast by design. You publish; your followers see it. The editor-in-chief has stated publicly they won't add direct messages. Attribution is total — every entry carries a face and a rating.


Goodreads does let you send a book to a specific person with a note. But successive redesigns buried the action so deep that their help forum is full of people asking where it went, and the recommendation also surfaces in friends' feeds — semi-public rather than private.


YouTube is the closest parallel. It launched in-app messaging in 2017, killed it in 2019 for low adoption, and brought it back through 2026. The mechanism: you can't message someone until you send them an invite link they have to accept. Only then do they appear in your share sheet.


What I took

From Apple, the idea that the messaging layer people already use is the social graph, and the product's job is to give what arrives a place to land with attribution intact.

From YouTube, link-first connection with explicit consent from the person receiving.

From Letterboxd, attribution carrying a face and a name rather than an aggregate score.


What I left out

Broadcast feeds. Letterboxd works because its users came for film discourse; Mercado Play users came to watch something tonight. A public activity feed would add a performance layer nobody asked for.

Contact-permission gates as an entry requirement. Every product that made this work avoided making the address book the price of admission.

Retry loops. Netflix's own retrospective points at low usage, not low awareness of the prompt. Chasing people with push and email to adopt a social feature treats a demand problem as an attention problem.

Letterboxd is broadcast by design. You publish; your followers see it. The editor-in-chief has stated publicly they won't add direct messages. Attribution is total — every entry carries a face and a rating.


Goodreads does let you send a book to a specific person with a note. But successive redesigns buried the action so deep that their help forum is full of people asking where it went, and the recommendation also surfaces in friends' feeds — semi-public rather than private.


YouTube is the closest parallel. It launched in-app messaging in 2017, killed it in 2019 for low adoption, and brought it back through 2026. The mechanism: you can't message someone until you send them an invite link they have to accept. Only then do they appear in your share sheet.


What I took

From Apple, the idea that the messaging layer people already use is the social graph, and the product's job is to give what arrives a place to land with attribution intact.

From YouTube, link-first connection with explicit consent from the person receiving.

From Letterboxd, attribution carrying a face and a name rather than an aggregate score.


What I left out

Broadcast feeds. Letterboxd works because its users came for film discourse; Mercado Play users came to watch something tonight. A public activity feed would add a performance layer nobody asked for.

Contact-permission gates as an entry requirement. Every product that made this work avoided making the address book the price of admission.

Retry loops. Netflix's own retrospective points at low usage, not low awareness of the prompt. Chasing people with push and email to adopt a social feature treats a demand problem as an attention problem.

The Opportunity


How might we let people recommend, receive and act on content from the people they trust — without requiring a network to exist first?

The design constraint that shaped everything: the system has to be useful to someone who has connected with nobody, on their first day, or it never gets a second day.

The Opportunity


How might we let people recommend, receive and act on content from the people they trust — without requiring a network to exist first?

The design constraint that shaped everything: the system has to be useful to someone who has connected with nobody, on their first day, or it never gets a second day.

The solution

The solution

A system built around one constraint: it has to work for someone who hasn't connected with anyone yet.

A system built around one constraint: it has to work for someone who hasn't connected with anyone yet.

Design Studio Hero Image
Design Studio Hero Image
Design Studio Hero Image

How it works, screen by screen

How it works, screen by screen

Entry

The Recommended tab exists from day one and is always reachable. There is no interstitial pop-up, no onboarding gate, no permission request standing between the person and the surface.

What they find is an empty state that explains what will appear there and offers two ways to start.

The decision: the primary action is inviting with a link, not connecting contacts. That inverts the obvious order, and the benchmark is why. Every product that made peer recommendation work avoided making the address book a requirement, and the one that shipped most recently built the entire feature around an invite link.

The secondary action, "Ver mis contactos", is named for what it does — show which of your contacts are already on Mercado Play — rather than for the permission it needs. The system dialog only appears after that intent is explicit.

The labels carry the hierarchy. The primary names the outcome, your people; the secondary names the mechanism, your contacts. An earlier version had this backwards — "Conectar con mi gente" sat in the secondary slot and pulled attention away from the primary, because nobody wants a link, they want the people.

Entry

The Recommended tab exists from day one and is always reachable. There is no interstitial pop-up, no onboarding gate, no permission request standing between the person and the surface.

What they find is an empty state that explains what will appear there and offers two ways to start.

The decision: the primary action is inviting with a link, not connecting contacts. That inverts the obvious order, and the benchmark is why. Every product that made peer recommendation work avoided making the address book a requirement, and the one that shipped most recently built the entire feature around an invite link.

The secondary action, "Ver mis contactos", is named for what it does — show which of your contacts are already on Mercado Play — rather than for the permission it needs. The system dialog only appears after that intent is explicit.

The labels carry the hierarchy. The primary names the outcome, your people; the secondary names the mechanism, your contacts. An earlier version had this backwards — "Conectar con mi gente" sat in the secondary slot and pulled attention away from the primary, because nobody wants a link, they want the people.

Connection

Two paths converge on the same result, and the link path does double duty.

Inviting, when there's nothing to send yet. From the empty state, the primary action opens the native share sheet with an invite: no title attached, because on day one there's nothing to attach. The recipient gets a link, opens it, and decides whether to join. Consent is explicit and belongs to the person receiving — nobody gets added to a graph without acting.

Recommending, when there is. The same share sheet, opened from any title, carries a deep link to that specific piece of content. The recipient lands on it directly.

The decision: the invite from the empty state carries no content, and that's a tradeoff I took knowingly. A first-time user has nothing to recommend, so the invitation has to stand on its own — which puts the whole weight on the copy. Recommending a specific title is the other entry point into the same system, and it does the same job with content attached.

The contacts path splits the list in two: people already on Mercado Play, who can be connected directly, and people who aren't, who get an invite. Declining the permission returns to the link path rather than to a settings screen.

The decision: refusing a permission is a valid answer, not an obstacle to route around.

Connection

Two paths converge on the same result, and the link path does double duty.

Inviting, when there's nothing to send yet. From the empty state, the primary action opens the native share sheet with an invite: no title attached, because on day one there's nothing to attach. The recipient gets a link, opens it, and decides whether to join. Consent is explicit and belongs to the person receiving — nobody gets added to a graph without acting.

Recommending, when there is. The same share sheet, opened from any title, carries a deep link to that specific piece of content. The recipient lands on it directly.

The decision: the invite from the empty state carries no content, and that's a tradeoff I took knowingly. A first-time user has nothing to recommend, so the invitation has to stand on its own — which puts the whole weight on the copy. Recommending a specific title is the other entry point into the same system, and it does the same job with content attached.

The contacts path splits the list in two: people already on Mercado Play, who can be connected directly, and people who aren't, who get an invite. Declining the permission returns to the link path rather than to a settings screen.

The decision: refusing a permission is a valid answer, not an obstacle to route around.

The hub

Recommended is where everything lands. Titles carry a face, a name and a rating from the person who sent them — attribution, not aggregation. A rating from your circle means something a platform average never will.

For the passive user — the one who won't send anything and just wants to open the app and find what their family picked — this is the entire product. They never have to initiate.

The hub

Recommended is where everything lands. Titles carry a face, a name and a rating from the person who sent them — attribution, not aggregation. A rating from your circle means something a platform average never will.

For the passive user — the one who won't send anything and just wants to open the app and find what their family picked — this is the entire product. They never have to initiate.

Recommending

From any title, in two taps: pick recent contacts or share by link, add an optional note.

The decision: you can recommend before you have connected with anyone. Sending by link doesn't require a network — which is exactly what lets the loop start from zero.

Recommending

From any title, in two taps: pick recent contacts or share by link, add an optional note.

The decision: you can recommend before you have connected with anyone. Sending by link doesn't require a network — which is exactly what lets the loop start from zero.

Stage and edge cases

Stage and edge cases

A recommendation system spends most of its early life empty. Those states are the product, not an afterthought.

Nobody connected yet. The tab explains what will appear and offers both entry paths. Personal rails stay below so the tab is never a dead end.

Connected, nothing received. Shows who you're connected with and pushes you to send the first recommendation rather than wait. This is the cold-start answer made visible: seeding beats waiting.

Contact search with no results. Offers phone lookup or an invite link instead of returning an empty list.

Send failure. Preserves the note already written and offers a retry. Losing someone's typed message to a network error is the most avoidable failure in the flow.

Permission denied. Returns to the link path. No settings redirect, no second ask.

Invitation declined or ignored. The flow ends. There is no push retry, no email nudge, no re-education screen. This was a deliberate removal.

A recommendation system spends most of its early life empty. Those states are the product, not an afterthought.

Nobody connected yet. The tab explains what will appear and offers both entry paths. Personal rails stay below so the tab is never a dead end.

Connected, nothing received. Shows who you're connected with and pushes you to send the first recommendation rather than wait. This is the cold-start answer made visible: seeding beats waiting.

Contact search with no results. Offers phone lookup or an invite link instead of returning an empty list.

Send failure. Preserves the note already written and offers a retry. Losing someone's typed message to a network error is the most avoidable failure in the flow.

Permission denied. Returns to the link path. No settings redirect, no second ask.

Invitation declined or ignored. The flow ends. There is no push retry, no email nudge, no re-education screen. This was a deliberate removal.

The Loop

Sees something → recommends it → it reaches the other person → they open the hub and see who sent it → they watch → they send one back.

The loop can be entered from either side and doesn't require a connection to start, because the link path works before any graph exists.

The Loop

Sees something → recommends it → it reaches the other person → they open the hub and see who sent it → they watch → they send one back.

The loop can be entered from either side and doesn't require a connection to start, because the link path works before any graph exists.

Scope

What I designed: the Recommended tab, connection by link and by contacts, the recommendation flow from any title, and the empty and error states across all of it.

What I deliberately left out: content categorisation by relationship type (family, friends), reactions and replies on a received recommendation and group recommendations. Each is defensible as a next step, none is required for the loop to close.

Scope

What I designed: the Recommended tab, connection by link and by contacts, the recommendation flow from any title, and the empty and error states across all of it.

What I deliberately left out: content categorisation by relationship type (family, friends), reactions and replies on a received recommendation and group recommendations. Each is defensible as a next step, none is required for the loop to close.

How I'd measure it

There are no results to report. This is concept work. What follows is what I'd instrument.

Primary — does it move the problem? Usage frequency, since the premise was a 4% drop. A recommendation is a reason to return; the test is whether returns rise among people who receive one.

Secondary. Play-through rate on peer-attributed titles versus algorithmic rows. Time from receiving a recommendation to playing it. Share of invites that convert to a connection.

Health, not vanity. Ratio of people who send at least one recommendation to people who only receive. A system where 5% send and 95% receive is a broadcast channel, not a social loop, and would mean the design failed at its own premise.

What I'd A/B test first. Link-first entry against contacts-first, measuring completed connections rather than permission grants. That is the single decision the whole architecture rests on, and it's the one I'd want evidence for before building anything else.

How I'd measure it

There are no results to report. This is concept work. What follows is what I'd instrument.

Primary — does it move the problem? Usage frequency, since the premise was a 4% drop. A recommendation is a reason to return; the test is whether returns rise among people who receive one.

Secondary. Play-through rate on peer-attributed titles versus algorithmic rows. Time from receiving a recommendation to playing it. Share of invites that convert to a connection.

Health, not vanity. Ratio of people who send at least one recommendation to people who only receive. A system where 5% send and 95% receive is a broadcast channel, not a social loop, and would mean the design failed at its own premise.

What I'd A/B test first. Link-first entry against contacts-first, measuring completed connections rather than permission grants. That is the single decision the whole architecture rests on, and it's the one I'd want evidence for before building anything else.

Prototype

Prototype

Navigate the full flow.

Navigate the full flow.

Key learnings

A social feature that needs a network to be useful will never get one. The design problem isn't the populated state, it's the first day.

Permission gates are a tax on the least confident user. The person who most needs recommendations handed to them is the least likely to grant contact access to get them.

Attribution is the feature. Not the recommendation itself — the fact that it comes with a face attached. Strip that and you've rebuilt an algorithm with extra steps.

The empty state carries the strategy. What it asks someone to do reveals whether the system expects them to wait or to start.

Key learnings

A social feature that needs a network to be useful will never get one. The design problem isn't the populated state, it's the first day.

Permission gates are a tax on the least confident user. The person who most needs recommendations handed to them is the least likely to grant contact access to get them.

Attribution is the feature. Not the recommendation itself — the fact that it comes with a face attached. Strip that and you've rebuilt an algorithm with extra steps.

The empty state carries the strategy. What it asks someone to do reveals whether the system expects them to wait or to start.

Let’s build systems that scale.

Let’s build systems that scale.

Designing operational clarity in high-impact SaaS environments.

Contact me