Discord

Personal Project

WumpusBox Integration

WumpusBox Integration

WumpusBox Integration

WumpusBox Integration

WumpusBox Integration

Discord's 10MB limit frustrates its most valuable users — the 1% who create content that keeps servers active. I designed a solution that solves their pain without costing Discord a dollar in bandwidth.

Discord's 10MB limit frustrates its most valuable users — the 1% who create content that keeps servers active. I designed a solution that solves their pain without costing Discord a dollar in bandwidth.

Discord's 10MB limit frustrates its most valuable users — the 1% who create content that keeps servers active. I designed a solution that solves their pain without costing Discord a dollar in bandwidth.

Discord's 10MB limit frustrates its most valuable users — the 1% who create content that keeps servers active. I designed a solution that solves their pain without costing Discord a dollar in bandwidth.

Discord's 10MB limit frustrates its most valuable users — the 1% who create content that keeps servers active. I designed a solution that solves their pain without costing Discord a dollar in bandwidth.

Role: Product Designer (End-to-End)

Timeline: 8 Weeks

Tools: Figma, Usability Testing

Platform: Desktop App

Role: Product Designer (End-to-End)

Timeline: 8 Weeks

Tools: Figma, Usability Testing

Platform: Desktop App

Role: Product Designer (End-to-End)

Timeline: 8 Weeks

Tools: Figma, Usability Testing

Platform: Desktop App

Role: Product Designer (End-to-End)

Timeline: 8 Weeks

Tools: Figma, Usability Testing

Platform: Desktop App

Role: Product Designer (End-to-End)

Timeline: 8 Weeks

Tools: Figma, Usability Testing

Platform: Desktop App

WumpusBox: Solving the "Boycott" vs. "Bandwidth" Conflict

WumpusBox: Solving the "Boycott" vs. "Bandwidth" Conflict

WumpusBox: Solving the "Boycott" vs. "Bandwidth" Conflict

WumpusBox: Solving the "Boycott" vs. "Bandwidth" Conflict

WumpusBox: Solving the "Boycott" vs. "Bandwidth" Conflict

Discord users have long frustratedly 'boycotted' the 10MB file limit, using clumsy workarounds that kill social interaction. My initial challenge was to solve this frustration.

However, after researching the business constraints, I realized a simple limit increase would be unsustainable due to bandwidth costs. This case study documents my pivot from a failed 'gamified storage' concept to WumpusBox: a native integration that solves the user's need for instant sharing while offloading 100% of the storage cost to the user's own cloud.

Discord users have long frustratedly 'boycotted' the 10MB file limit, using clumsy workarounds that kill social interaction. My initial challenge was to solve this frustration.

However, after researching the business constraints, I realized a simple limit increase would be unsustainable due to bandwidth costs. This case study documents my pivot from a failed 'gamified storage' concept to WumpusBox: a native integration that solves the user's need for instant sharing while offloading 100% of the storage cost to the user's own cloud.

Discord users have long frustratedly 'boycotted' the 10MB file limit, using clumsy workarounds that kill social interaction. My initial challenge was to solve this frustration.

However, after researching the business constraints, I realized a simple limit increase would be unsustainable due to bandwidth costs. This case study documents my pivot from a failed 'gamified storage' concept to WumpusBox: a native integration that solves the user's need for instant sharing while offloading 100% of the storage cost to the user's own cloud.

Discord users have long frustratedly 'boycotted' the 10MB file limit, using clumsy workarounds that kill social interaction. My initial challenge was to solve this frustration.

However, after researching the business constraints, I realized a simple limit increase would be unsustainable due to bandwidth costs. This case study documents my pivot from a failed 'gamified storage' concept to WumpusBox: a native integration that solves the user's need for instant sharing while offloading 100% of the storage cost to the user's own cloud.

Discord users have long frustratedly 'boycotted' the 10MB file limit, using clumsy workarounds that kill social interaction. My initial challenge was to solve this frustration.

However, after researching the business constraints, I realized a simple limit increase would be unsustainable due to bandwidth costs. This case study documents my pivot from a failed 'gamified storage' concept to WumpusBox: a native integration that solves the user's need for instant sharing while offloading 100% of the storage cost to the user's own cloud.

Discord users have long frustratedly 'boycotted' the 10MB file limit, using clumsy workarounds that kill social interaction. My initial challenge was to solve this frustration.

However, after researching the business constraints, I realized a simple limit increase would be unsustainable due to bandwidth costs. This case study documents my pivot from a failed 'gamified storage' concept to WumpusBox: a native integration that solves the user's need for instant sharing while offloading 100% of the storage cost to the user's own cloud.

01 The Problem

01 The Problem

01 The Problem

01 The Problem

The Conflict Discord users want "in-the-moment" gratification. When they try to share a funny clip or a high-quality art piece, the 10MB limit acts as a hard wall. This forces them to leave the app—a friction that kills the social vibe.

The Conflict Discord users want "in-the-moment" gratification. When they try to share a funny clip or a high-quality art piece, the 10MB limit acts as a hard wall. This forces them to leave the app—a friction that kills the social vibe.

The Conflict Discord users want "in-the-moment" gratification. When they try to share a funny clip or a high-quality art piece, the 10MB limit acts as a hard wall. This forces them to leave the app—a friction that kills the social vibe.

The Conflict Discord users want "in-the-moment" gratification. When they try to share a funny clip or a high-quality art piece, the 10MB limit acts as a hard wall. This forces them to leave the app—a friction that kills the social vibe.

Why This Problem Matters

Discord's 10MB limit isn't a bug — it's a cost control. But it's pushing power users (artists, gamers, creators) to boycott Nitro and use workarounds that pull them out of the app. These users are the heart of active communities. Losing their engagement risks server health.

The Opportunity

If Discord can solve this without increasing bandwidth costs, they retain high-value users, protect Nitro revenue, and keep conversations flowing.

The Persona

The Persona

The Persona

The Persona

The Persona

"The High-Fidelity Socializer"

"The High-Fidelity Socializer"

"The High-Fidelity Socializer"

"The High-Fidelity Socializer"

"The High-Fidelity Socializer"

Gamers and Artists using modern hardware (4K clips, large PSDs) are hit hardest by the limit.

Gamers and Artists using modern hardware (4K clips, large PSDs) are hit hardest by the limit.

Gamers and Artists using modern hardware (4K clips, large PSDs) are hit hardest by the limit.

Gamers and Artists using modern hardware (4K clips, large PSDs) are hit hardest by the limit.

Gamers and Artists using modern hardware (4K clips, large PSDs) are hit hardest by the limit.

The Frustration

The Frustration

The Frustration

The Frustration

The Frustration

"I hate the file limit so much... if I try to send [photos] it stops me because the files are too big."


"I hate the file limit so much... if I try to send [photos] it stops me because the files are too big."


"I hate the file limit so much... if I try to send [photos] it stops me because the files are too big."


"I hate the file limit so much... if I try to send [photos] it stops me because the files are too big."


"I hate the file limit so much... if I try to send [photos] it stops me because the files are too big."


The "Boycott" Risk

The "Boycott" Risk

The "Boycott" Risk

The "Boycott" Risk

The "Boycott" Risk

Although a minority (1%), these users create the high-value content that keeps servers active. Their frustration leads to a sentiment of "boycotting" Nitro.

Although a minority (1%), these users create the high-value content that keeps servers active. Their frustration leads to a sentiment of "boycotting" Nitro.

Although a minority (1%), these users create the high-value content that keeps servers active. Their frustration leads to a sentiment of "boycotting" Nitro.

Although a minority (1%), these users create the high-value content that keeps servers active. Their frustration leads to a sentiment of "boycotting" Nitro.

Although a minority (1%), these users create the high-value content that keeps servers active. Their frustration leads to a sentiment of "boycotting" Nitro.

Problem Validation

I surveyed 21 Discord users to understand the impact of the limit on their social interactions.


81%


of users admitted to using "clunky workarounds" (like Google Drive, compression, or switching apps) to bypass the limit, proving that the desire to share outweighs the friction of leaving the platform.

Problem Validation



I surveyed 21 Discord users to understand the impact of the limit on their social interactions.


81%

of users admitted to using "clunky workarounds" (like Google Drive, compression, or switching apps) to bypass the limit, proving that the desire to share outweighs the friction of leaving the platform.

Problem Validation



I surveyed 21 Discord users to understand the impact of the limit on their social interactions.


81%


of users admitted to using "clunky workarounds" (like Google Drive, compression, or switching apps) to bypass the limit, proving that the desire to share outweighs the friction of leaving the platform.

The Villain

The Villain

The Villain

The Villain

The Villain

10MB Error popup

10MB Error popup

10MB Error popup

10MB Error popup

10MB Error popup

The Business Constraint: Bandwidth Costs

The Business Constraint: Bandwidth Costs

The Business Constraint: Bandwidth Costs

The Business Constraint: Bandwidth Costs

The Business Constraint: Bandwidth Costs

I analyzed competitors like Telegram (2GB) and Guilded (500MB). While users expect these limits, matching them would be financially disastrous for Discord due to its significantly higher daily media throughput.

I analyzed competitors like Telegram (2GB) and Guilded (500MB). While users expect these limits, matching them would be financially disastrous for Discord due to its significantly higher daily media throughput.

I analyzed competitors like Telegram (2GB) and Guilded (500MB). While users expect these limits, matching them would be financially disastrous for Discord due to its significantly higher daily media throughput.

I analyzed competitors like Telegram (2GB) and Guilded (500MB). While users expect these limits, matching them would be financially disastrous for Discord due to its significantly higher daily media throughput.

I analyzed competitors like Telegram (2GB) and Guilded (500MB). While users expect these limits, matching them would be financially disastrous for Discord due to its significantly higher daily media throughput.

The Expectation Gap:

  • Telegram: 2GB

  • Discord: 10MB

The Expectation Gap:

  • Telegram: 2GB

  • Discord: 10MB

The Expectation Gap:

  • Telegram: 2GB

  • Discord: 10MB

The Expectation Gap:

  • Telegram: 2GB

  • Discord: 10MB

The Expectation Gap:

  • Telegram: 2GB

  • Discord: 10MB

The Insight: "This confirmed that a simple limit increase (native storage) was unsustainable, forcing me to look for a solution that cost Discord $0."

The Insight: "This confirmed that a simple limit increase (native storage) was unsustainable, forcing me to look for a solution that cost Discord $0."

The Insight: "This confirmed that a simple limit increase (native storage) was unsustainable, forcing me to look for a solution that cost Discord $0."

The Insight: "This confirmed that a simple limit increase (native storage) was unsustainable, forcing me to look for a solution that cost Discord $0."

The Insight: "This confirmed that a simple limit increase (native storage) was unsustainable, forcing me to look for a solution that cost Discord $0."

02 Initial Exploration

02 Initial Exploration

02 Initial Exploration

02 Initial Exploration

02 Initial Exploration

The Hypothesis: Gamifying Friction

The Hypothesis: Gamifying Friction

The Hypothesis: Gamifying Friction

The Hypothesis: Gamifying Friction

The Hypothesis: Gamifying Friction

My initial hypothesis focused on converting 'Heavy Passive Users'... personified as Wumpus eating files... introducing 'Variable Duration' logic to make friction feel natural.

My initial hypothesis focused on converting 'Heavy Passive Users'... personified as Wumpus eating files... introducing 'Variable Duration' logic to make friction feel natural.

My initial hypothesis focused on converting 'Heavy Passive Users'... personified as Wumpus eating files... introducing 'Variable Duration' logic to make friction feel natural.

My initial hypothesis focused on converting 'Heavy Passive Users'... personified as Wumpus eating files... introducing 'Variable Duration' logic to make friction feel natural.

My initial hypothesis focused on converting 'Heavy Passive Users'... personified as Wumpus eating files... introducing 'Variable Duration' logic to make friction feel natural.

Emotional Rejection

Emotional Rejection

Emotional Rejection

Emotional Rejection

Emotional Rejection

Users didn't find Wumpus eating files playful. They found it 'disturbing' and felt 'guilt' for making the mascot sick.

Users didn't find Wumpus eating files playful. They found it 'disturbing' and felt 'guilt' for making the mascot sick.

Users didn't find Wumpus eating files playful. They found it 'disturbing' and felt 'guilt' for making the mascot sick.

Users didn't find Wumpus eating files playful. They found it 'disturbing' and felt 'guilt' for making the mascot sick.

Users didn't find Wumpus eating files playful. They found it 'disturbing' and felt 'guilt' for making the mascot sick.

"It prompted feelings of guilt... I felt like I made a cute creature sick."

"It prompted feelings of guilt... I felt like I made a cute creature sick."

"It prompted feelings of guilt... I felt like I made a cute creature sick."

"It prompted feelings of guilt... I felt like I made a cute creature sick."

"It prompted feelings of guilt... I felt like I made a cute creature sick."

Strategic Failure

Strategic Failure

Strategic Failure

Strategic Failure

Strategic Failure

I realized I had ignored a massive technical constraint: Bandwidth Costs. Allowing 1GB uploads for free users would skyrocket 'cost to send', making the feature financially impossible regardless of the UI.

I realized I had ignored a massive technical constraint: Bandwidth Costs. Allowing 1GB uploads for free users would skyrocket 'cost to send', making the feature financially impossible regardless of the UI.

I realized I had ignored a massive technical constraint: Bandwidth Costs. Allowing 1GB uploads for free users would skyrocket 'cost to send', making the feature financially impossible regardless of the UI.

I realized I had ignored a massive technical constraint: Bandwidth Costs. Allowing 1GB uploads for free users would skyrocket 'cost to send', making the feature financially impossible regardless of the UI.

I realized I had ignored a massive technical constraint: Bandwidth Costs. Allowing 1GB uploads for free users would skyrocket 'cost to send', making the feature financially impossible regardless of the UI.

High-Fidelity iteration using 'Toybox' metaphor to reduce guilt.

High-Fidelity iteration using 'Toybox' metaphor to reduce guilt.

High-Fidelity iteration using 'Toybox' metaphor to reduce guilt.

High-Fidelity iteration using 'Toybox' metaphor to reduce guilt.

High-Fidelity iteration using 'Toybox' metaphor to reduce guilt.

Experiment 2: The Toybox Trap

Experiment 2: The Toybox Trap

Experiment 2: The Toybox Trap

Experiment 2: The Toybox Trap

Experiment 2: The Toybox Trap

I iterated to a Toybox metaphor. While it fixed the emotional guilt, the business logic remained broken.

I iterated to a Toybox metaphor. While it fixed the emotional guilt, the business logic remained broken.

I iterated to a Toybox metaphor. While it fixed the emotional guilt, the business logic remained broken.

I iterated to a Toybox metaphor. While it fixed the emotional guilt, the business logic remained broken.

I iterated to a Toybox metaphor. While it fixed the emotional guilt, the business logic remained broken.

Users Loved It

Users Loved It

Users Loved It

Users Loved It

Users Loved It

100% Positive Sentiment

100% Positive Sentiment

100% Positive Sentiment

100% Positive Sentiment

100% Positive Sentiment

Business Failure

Business Failure

Business Failure

Business Failure

Business Failure

22% Conversion Rate

22% Conversion Rate

22% Conversion Rate

22% Conversion Rate

22% Conversion Rate

Mid-Fidelity prototype demonstrating the 'Hold-to-Delete' friction that users ultimately rejected.

Mid-Fidelity prototype demonstrating the 'Hold-to-Delete' friction that users ultimately rejected.

Mid-Fidelity prototype demonstrating the 'Hold-to-Delete' friction that users ultimately rejected.

Mid-Fidelity prototype demonstrating the 'Hold-to-Delete' friction that users ultimately rejected.

Mid-Fidelity prototype demonstrating the 'Hold-to-Delete' friction that users ultimately rejected.

The Strategic Pivot

The Strategic Pivot

The Strategic Pivot

The Strategic Pivot

The Toybox data revealed the hard truth: I had built a feature users loved, but one that would bankrupt the company via bandwidth costs. I realized I couldn't solve this with native storage. This forced the pivot to the Zero-Cost Integration model.

The Toybox data revealed the hard truth: I had built a feature users loved, but one that would bankrupt the company via bandwidth costs. I realized I couldn't solve this with native storage. This forced the pivot to the Zero-Cost Integration model.

The Toybox data revealed the hard truth: I had built a feature users loved, but one that would bankrupt the company via bandwidth costs. I realized I couldn't solve this with native storage. This forced the pivot to the Zero-Cost Integration model.

The Toybox data revealed the hard truth: I had built a feature users loved, but one that would bankrupt the company via bandwidth costs. I realized I couldn't solve this with native storage. This forced the pivot to the Zero-Cost Integration model.

03 Design Execution

03 Design Execution

03 Design Execution

03 Design Execution

03 Design Execution

Transforming the Error into a Choice

Transforming the Error into a Choice

Transforming the Error into a Choice

Transforming the Error into a Choice

Transforming the Error into a Choice

Instead of a dead end, the popup presents a strategic choice: Pay for convenience (Nitro) or trade time for free access (WumpusBox).

Instead of a dead end, the popup presents a strategic choice: Pay for convenience (Nitro) or trade time for free access (WumpusBox).

Instead of a dead end, the popup presents a strategic choice: Pay for convenience (Nitro) or trade time for free access (WumpusBox).

Instead of a dead end, the popup presents a strategic choice: Pay for convenience (Nitro) or trade time for free access (WumpusBox).

Instead of a dead end, the popup presents a strategic choice: Pay for convenience (Nitro) or trade time for free access (WumpusBox).

Placing 'Setup' next to 'Nitro' respects the user's budget while keeping the upsell visible.

Placing 'Setup' next to 'Nitro' respects the user's budget while keeping the upsell visible.

Placing 'Setup' next to 'Nitro' respects the user's budget while keeping the upsell visible.

Placing 'Setup' next to 'Nitro' respects the user's budget while keeping the upsell visible.

Placing 'Setup' next to 'Nitro' respects the user's budget while keeping the upsell visible.

Trust-Based Onboarding

Trust-Based Onboarding

Trust-Based Onboarding

Trust-Based Onboarding

Utilizing familiar OAuth patterns and a visual diagram to explain the technical concept, reducing anxiety around installing the helper app.

Utilizing familiar OAuth patterns and a visual diagram to explain the technical concept, reducing anxiety around installing the helper app.

Utilizing familiar OAuth patterns and a visual diagram to explain the technical concept, reducing anxiety around installing the helper app.

Utilizing familiar OAuth patterns and a visual diagram to explain the technical concept, reducing anxiety around installing the helper app.

Native Integration (Jakob's Law)

Native Integration (Jakob's Law)

Leveraging Discord's existing "+" Menu and Sticker Picker layouts ensures users don't have to learn a new interface.

Leveraging Discord's existing "+" Menu and Sticker Picker layouts ensures users don't have to learn a new interface.

The custom picker visually represents the cloud state, proving they are browsing their Drive.

The custom picker visually represents the cloud state, proving they are browsing their Drive.

Optimistic Feedback & The Result

Optimistic Feedback & The Result

Optimistic Feedback & The Result

Optimistic Feedback & The Result

A skeleton loader manages latency expectations while the API fetches the stream. The final result is indistinguishable from a native upload.

A skeleton loader manages latency expectations while the API fetches the stream. The final result is indistinguishable from a native upload.

A skeleton loader manages latency expectations while the API fetches the stream. The final result is indistinguishable from a native upload.

A skeleton loader manages latency expectations while the API fetches the stream. The final result is indistinguishable from a native upload.

Projected Impact

This project wasn't shipped, so I can't share real metrics. However, if implemented, WumpusBox could:

  • Reduce friction for the 1% of power users hitting the limit

  • Maintain $0 bandwidth cost for Discord

  • Keep file sharing inside the app instead of pushing users to Google Drive

04 Key Learnings

04 Key Learnings

04 Key Learnings

04 Key Learnings

Technical Literacy is Critical

Technical Literacy is Critical

Technical Literacy is Critical

Technical Literacy is Critical

Technical Literacy is Critical

I learned that a design can fail if it ignores backend realities. My initial 'Storage' solution failed because I didn't account for Bandwidth Costs. Understanding 'Cost to Send' was the key to unlocking the correct integration model.

I learned that a design can fail if it ignores backend realities. My initial 'Storage' solution failed because I didn't account for Bandwidth Costs. Understanding 'Cost to Send' was the key to unlocking the correct integration model.

I learned that a design can fail if it ignores backend realities. My initial 'Storage' solution failed because I didn't account for Bandwidth Costs. Understanding 'Cost to Send' was the key to unlocking the correct integration model.

I learned that a design can fail if it ignores backend realities. My initial 'Storage' solution failed because I didn't account for Bandwidth Costs. Understanding 'Cost to Send' was the key to unlocking the correct integration model.

I learned that a design can fail if it ignores backend realities. My initial 'Storage' solution failed because I didn't account for Bandwidth Costs. Understanding 'Cost to Send' was the key to unlocking the correct integration model.

Prototyping as a Filter

Prototyping as a Filter

Prototyping as a Filter

Prototyping as a Filter

Prototyping as a Filter

Building the high-fidelity 'Toybox' prototype wasn't a waste—it was a necessary filter. It allowed me to catch critical flaws in the business logic before any engineering code was written, saving the company expensive development cycles.

Building the high-fidelity 'Toybox' prototype wasn't a waste—it was a necessary filter. It allowed me to catch critical flaws in the business logic before any engineering code was written, saving the company expensive development cycles.

Building the high-fidelity 'Toybox' prototype wasn't a waste—it was a necessary filter. It allowed me to catch critical flaws in the business logic before any engineering code was written, saving the company expensive development cycles.

Building the high-fidelity 'Toybox' prototype wasn't a waste—it was a necessary filter. It allowed me to catch critical flaws in the business logic before any engineering code was written, saving the company expensive development cycles.

Building the high-fidelity 'Toybox' prototype wasn't a waste—it was a necessary filter. It allowed me to catch critical flaws in the business logic before any engineering code was written, saving the company expensive development cycles.

Efficiency via Jakob's Law

Efficiency via Jakob's Law

Efficiency via Jakob's Law

By adapting Discord's existing Internal Media Pickers (like the GIF/Sticker menus), I eliminated the need for new onboarding. The interface felt familiar to users from day one.

By adapting Discord's existing Internal Media Pickers (like the GIF/Sticker menus), I eliminated the need for new onboarding. The interface felt familiar to users from day one.

By adapting Discord's existing Internal Media Pickers (like the GIF/Sticker menus), I eliminated the need for new onboarding. The interface felt familiar to users from day one.

WumpusBox transforms a hostile 'boycott' situation into a positive feature discovery. It respects the user's need for instant sharing, protects the business's bottom line (zero bandwidth cost), and integrates seamlessly into the platform they love.

WumpusBox transforms a hostile 'boycott' situation into a positive feature discovery. It respects the user's need for instant sharing, protects the business's bottom line (zero bandwidth cost), and integrates seamlessly into the platform they love.

WumpusBox transforms a hostile 'boycott' situation into a positive feature discovery. It respects the user's need for instant sharing, protects the business's bottom line (zero bandwidth cost), and integrates seamlessly into the platform they love.

WumpusBox transforms a hostile 'boycott' situation into a positive feature discovery. It respects the user's need for instant sharing, protects the business's bottom line (zero bandwidth cost), and integrates seamlessly into the platform they love.

WumpusBox transforms a hostile 'boycott' situation into a positive feature discovery. It respects the user's need for instant sharing, protects the business's bottom line (zero bandwidth cost), and integrates seamlessly into the platform they love.