In December 2025, I was asked to optimize a social media app's recommendation algorithm to increase daily active users by 30%. The proposed solution: show more emotionally charged content, prioritize outrage and shock value, and use psychological triggers to maximize session time. I declined the project. Because I've seen the internal documents. I know what these algorithms do to people—especially young people. And in 2026, the mental health crisis can no longer be ignored.
The Data We Can't Ignore: Mental Health by the Numbers
Let's start with the uncomfortable facts from CDC, WHO, and academic research:
- Teen suicide: Up 62% from 2007-2021 (when smartphones became ubiquitous)
- Teen girls specifically: Self-harm hospital visits up 188% since 2010
- Major depression in adolescents: Increased from 8.7% (2005) to 15.8% (2024)
- Anxiety disorders: 31.9% of teens now meet criteria (vs. 19.1% in 2007)
- Social media usage: Average 7.2 hours/day for teens in 2026
- Sleep deprivation: 73% of teens get insufficient sleep, correlated with late-night social media use
These aren't just statistics. These are kids ending up in emergency rooms. These are families destroyed by suicide. And the correlation with social media adoption is impossible to dismiss.
How Recommendation Algorithms Work: The Technical Truth
As someone who builds recommendation systems for clients, I understand exactly how these work. Here's the simplified technical reality:
import numpy as np
from typing import Dict, List
class SocialMediaRecommendationEngine:
"""
Simplified model of how platforms like TikTok, Instagram, YouTube optimize content.
The goal: maximize engagement (time spent, interactions).
The side effect: psychological addiction and mental health damage.
"""
def __init__(self):
self.model_version = "engagement_maximization_v4"
self.primary_metric = "session_duration"
def score_content(self, content: Dict, user_profile: Dict) -> float:
"""
Score content for recommendation.
Higher score = more likely to be shown.
"""
score = 0
# Factor 1: Engagement history
# Content similar to what user has previously engaged with
similarity_score = self.calculate_similarity(content, user_profile['past_interactions'])
score += similarity_score * 30
# Factor 2: Emotional intensity
# Controversial, shocking, or emotionally charged content performs better
emotional_intensity = content.get('sentiment_intensity', 0)
score += emotional_intensity * 25
# Factor 3: Social proof
# Viral content gets amplified further (rich get richer)
virality = content['likes'] / (content['views'] + 1)
score += np.log(virality * 1000) * 20
# Factor 4: Recency
# Newer content prioritized
hours_old = content['hours_since_upload']
recency_score = max(0, 10 - (hours_old / 24))
score += recency_score * 15
# Factor 5: Predicted watch time
# Content that keeps users on platform longer is prioritized
predicted_completion_rate = content.get('avg_completion_rate', 0.5)
score += predicted_completion_rate * 10
return score
def optimize_for_addiction(self, user_profile: Dict) -> List[Dict]:
"""
The dark pattern: identify content that triggers compulsive behavior.
Platforms don't call it "addiction optimization."
They call it "personalization" and "engagement."
"""
addictive_patterns = []
# Pattern 1: Infinite scroll optimization
# Ensure there's ALWAYS more content, preventing natural stop points
content_buffer = self.fetch_content(count=500) # Pre-load massive buffer
# Pattern 2: Variable reward schedule
# Mix high-value content with low-value to create gambling-like dopamine hits
# (Same psychology as slot machines)
high_value_content = [c for c in content_buffer if c['engagement_score'] > 0.8]
medium_value = [c for c in content_buffer if 0.4 < c['engagement_score'] <= 0.8]
low_value = [c for c in content_buffer if c['engagement_score'] <= 0.4]
# Variable reward ratio: 1 high-value every 5-7 pieces
feed = []
for i in range(100):
if i % 6 == 0:
feed.append(np.random.choice(high_value))
else:
feed.append(np.random.choice(medium_value + low_value))
# Pattern 3: Emotional manipulation
# Detect user's emotional state and serve content that amplifies it
if user_profile.get('recent_mood') == 'sad':
# Sad users get MORE sad content (keeps them scrolling for comfort)
feed = [c for c in feed if c.get('emotional_tone') == 'melancholic']
if user_profile.get('recent_mood') == 'angry':
# Angry users get MORE rage-bait (keeps engagement high)
feed = [c for c in feed if c.get('emotional_tone') == 'outrage']
return feed
def calculate_damage(self, hours_per_day: float, user_age: int) -> Dict:
"""
Honest assessment of mental health impact.
(Platforms would NEVER run this function, but the research is clear)
"""
base_risk = 1.0
# Time spent correlation
if hours_per_day > 5:
depression_risk_multiplier = 2.7
anxiety_risk_multiplier = 3.1
elif hours_per_day > 3:
depression_risk_multiplier = 1.7
anxiety_risk_multiplier = 2.0
else:
depression_risk_multiplier = 1.0
anxiety_risk_multiplier = 1.0
# Age vulnerability
if user_age < 18:
# Teens are 2-3x more vulnerable to algorithmic manipulation
depression_risk_multiplier *= 2.5
anxiety_risk_multiplier *= 2.8
return {
"depression_risk": base_risk * depression_risk_multiplier,
"anxiety_risk": base_risk * anxiety_risk_multiplier,
"sleep_disruption_probability": min(0.95, hours_per_day * 0.12),
"body_image_issues_risk": base_risk * (1.5 if user_age < 25 else 1.0),
"self_harm_content_exposure": hours_per_day * 0.03 # 3% of content on average
}
This is what we've built. And platforms know it works because they A/B test everything. They know that showing depressed teens MORE depression content keeps them scrolling. They know that rage-bait increases engagement. They optimize for it anyway.
The Internal Documents: What Platforms Know
Thanks to whistleblowers and leaked documents, we know platforms are aware of the harm:
Facebook/Instagram Internal Research (Leaked 2021, Still Relevant 2026)
- "32% of teen girls said Instagram made them feel worse about their bodies"
- "13.5% of UK teen girls trace suicidal thoughts to Instagram"
- "Teens blame Instagram for increases in anxiety and depression"
TikTok's Algorithm (Documented by Researchers 2024-2025)
- Pushes eating disorder content to users who watch weight-loss videos
- Creates "rabbit holes" of increasingly extreme content
- Teen test accounts served self-harm content within 30 minutes
YouTube's Recommendation System
- Radicalizes users by recommending progressively extreme content
- Average session time increased from 15 min (2012) to 40 min (2024)
- Internal motto: "If you're not annoying users, you're not trying hard enough to increase engagement"
The Developer's Guilt: We Built This
I need to be honest: developers like me are complicit. We build these systems. We optimize these algorithms. We celebrate when engagement metrics go up. And we tell ourselves it's just "giving users what they want."
But that's a lie. Users—especially young users—don't want to be addicted. They don't want to compare themselves to impossible beauty standards. They don't want to doom-scroll at 2 AM instead of sleeping.
What they want is connection, entertainment, and information. What we give them is an optimization function that hijacks their psychology for profit.
What Needs to Change: Technical and Regulatory Solutions
1. Algorithm Transparency Requirements
Mandate that platforms disclose how recommendation systems work. If your algorithm amplifies harmful content, that should be public information.
2. Engagement Metric Limits
Ban optimization for "time spent" as a primary KPI. Platforms should optimize for user well-being, not addiction.
3. Age-Appropriate Algorithms
Teen accounts should have fundamentally different algorithms: chronological feeds, no infinite scroll, limited recommendations.
4. Independent Audits
Require third-party researchers to audit algorithms for harm, similar to financial audits.
5. Platform Liability
If a platform's algorithm demonstrably causes harm (suicide, eating disorders, radicalization), they should face legal consequences.
What Developers Can Build Instead
Not all social tech is harmful. Here's what responsible development looks like:
class EthicalSocialMediaDesign:
"""
Principles for building social platforms that don't destroy mental health.
"""
def design_feed(self, user_profile: Dict):
"""
Alternative approach: optimize for well-being, not engagement.
"""
# Principle 1: Chronological, not algorithmic
# Show posts from people user follows, in time order
# No hidden prioritization, no manipulation
feed = self.get_chronological_feed(user_profile['following'])
# Principle 2: Natural stopping points
# Show "You're all caught up" after reasonable amount
# Don't create infinite scroll
feed = feed[:30] # Hard limit
# Principle 3: Downrank emotional extremes
# Filter out rage-bait and depression spirals
feed = [post for post in feed if post['emotional_intensity'] < 0.7]
# Principle 4: Surface support resources
# If user seems distressed, show mental health resources
if self.detect_distress_signals(user_profile):
feed.insert(0, {
"type": "support_resource",
"message": "It seems like you might be going through a tough time",
"resource": "https://988lifeline.org"
})
return feed
def calculate_success(self):
"""
Success metrics for ethical social media.
"""
return {
"primary_metric": "user_well_being_score",
"secondary_metrics": [
"meaningful_connections_made",
"positive_interactions_percentage",
"users_report_feeling_better_after_use"
],
"banned_metrics": [
"time_spent_maximization",
"addiction_indicators",
"engagement_at_all_costs"
]
}
Personal Actions: What I'm Doing Differently
As a developer, here's how I've changed my practice:
- Refusing engagement-maximization projects: I've turned down 4 high-paying social media projects in 2 years
- Building with ethics first: User well-being is now a primary design constraint
- Supporting regulation: I actively advocate for platform accountability laws
- Educating clients: Explaining why "maximize engagement" is the wrong goal
- Open-sourcing ethical alternatives: Contributing to humane tech projects
Conclusion: We Can't Unsee What We Know
The data is clear. The internal documents are leaked. The academic research is published. We KNOW social media algorithms are contributing to a mental health crisis, especially among young people.
Platforms will claim they're making changes. They'll announce new "safety features" and "well-being tools." But as long as their business model depends on maximizing engagement, their algorithms will continue optimizing for addiction.
As developers, we have power. We can refuse to build harmful systems. We can demand better from our employers and clients. We can support regulation that forces platforms to prioritize people over profits.
This isn't just about code. It's about the mental health of an entire generation. And we can't keep pretending we're neutral observers when we're the ones writing the algorithms.
If you're struggling with mental health, please reach out: National Suicide Prevention Lifeline (USA): 988 | Crisis Text Line: Text HOME to 741741 | International: findahelpline.com
Building Technology That Heals, Not Harms
I'm Prasanga Pokharel, a fullstack Python developer who prioritizes user well-being over engagement metrics. I work with USA and Australia clients who want to build ethical, responsible technology.
My focus: Mental health tech, ethical AI, humane design patterns, and platforms that respect users' psychology instead of exploiting it.
Let's Build Responsible Tech →