/* global React, Icons, Badge, Btn, Pill, Meter, Score, Stat, Eyebrow */ const { useState } = React; /* ========================================================================= STREAMER PROFILE — StreamerHouse case study ========================================================================= */ const StreamerPage = ({ onNav }) => { return (
{/* HERO ================================================================ */}
{/* "Photo" placeholder */}
Living lab · Profile #14 · StreamerHouse · LA

StreamerHouse / Echo Park

The flagship living-lab. Six creators, one permanent rig, twelve months of test logs. Below: what they bought, what failed, and how they actually make their money.

Active Updated weekly Pro setup
{/* MAIN ============================================================== */}
{/* LEFT — Story */}
Origin story

Six streamers, one router, a year of receipts.

StreamerHouse started as a sublet experiment. Three IRL creators rented a house in Echo Park, pooled gear, and ran it as a permanent stream lab. Today it’s six people and a 14-month log of what actually breaks when you run a rig that can’t go down.

We onboarded the house as livestreamers.org’s living test bed in Q3 ’25. Every gear rotation goes through this rig first. Below, their exact stack — no marketing-page nonsense.

{/* Gear Stack */}
Gear stack · What’s plugged in right now $8,420 TOTAL
{[ { c: 'Camera', n: 'DJI Osmo Pocket 3 × 2', p: 1038, t: 'Lab pick' }, { c: 'Camera B', n: 'Sony FX3 (anchor cam)', p: 3899, t: null }, { c: 'Audio', n: 'Shure SM7B + RodeCaster Pro II', p: 1099, t: null }, { c: 'Audio B', n: 'Rode Wireless GO 3', p: 349, t: 'Lab pick' }, { c: 'Router', n: 'Peplink MAX BR1 5G + Cradlepoint backup', p: 2298, t: 'Critical' }, { c: 'Power', n: 'EcoFlow Delta 2 (always on)', p: 999, t: null }, { c: 'Lighting', n: 'Aputure 60D × 3 + LED panel array', p: 1740, t: null }, ].map((g, i) => (
{g.c}
{g.n}
{g.t && {g.t}}
${g.p.toLocaleString()}
))}
{/* Biggest technical problem */}
Biggest technical problem · solved

Echo Park has terrible Verizon. We bonded around it.

The house sits in a known Verizon dead zone. First three streams dropped inside 90 minutes. We added a T-Mobile primary, Verizon backup, AT&T as the failsafe, and a Starlink Mini on the patio for when all three sag.

Result · last 90 days
{/* Lessons */}
Lessons learned · the year in retrospect

Five things they’d do differently.

{[ 'Buy the Peplink before any cameras. The cameras don’t matter if your stream drops.', 'Two power systems. Always. Single battery = single point of failure.', 'Pre-stream checklist on the wall, laminated. Drops dropped 80%.', 'Don’t cheap out on the mic. Audio loss kills retention faster than video.', 'Save 25% of every revenue dollar for gear refresh. The treadmill is real.', ].map((l, i) => (
{(i + 1).toString().padStart(2, '0')}
{l}
))}
{/* RIGHT — Cards */}
{/* Steal This Setup */}
Steal this setup
$8,420
Full BOM with affiliate links
{/* "Add to my builds" requires accounts (Phase 5). For now: jump to the configurator preset. */} onNav?.('build')}> Open in configurator window.print()}>Print PDF
Platform mix
{[ ['Twitch', 68, '#9146FF'], ['YouTube', 18, '#FF0033'], ['TikTok', 10, '#FF2D6F'], ['Kick', 4, '#53FC18'], ].map(([n, v, c]) => (
{n} {v}%
))}
Revenue mix · last 90d
{[ ['Subscriptions', 42], ['Bits / donations', 19], ['Affiliate links', 16], ['Sponsorships', 12], ['YouTube ads', 11], ].map(([n, v]) => (
{n}
{v}%
))}
Favorite tools
{['OBS 31','Twitch Studio','Restream','Streamlabs','Stream Deck XL','Davinci Resolve','Notion'].map(t => ( {t} ))}
{/* OTHER PROFILES */}
22 profiles · 4 in the lab right now

More streamers, more receipts.

{/* "All profiles" lands when the streamer MDX collection ships in Phase 4. */}
{[ { n: 'Roady', sub: 'Pro IRL · driving + walk', avg: '4.2k', plat: 'Twitch' }, { n: 'NeonRunner', sub: 'Tokyo street IRL', avg: '2.1k', plat: 'YouTube' }, { n: 'Desk Studio · ATX', sub: 'Home OBS · twin-PC', avg: '3.1k', plat: 'Twitch' }, { n: 'Cold Brewer', sub: 'Sim-racing IRL hybrid', avg: '1.8k', plat: 'Kick' }, ].map((p, i) => (
Tested
{p.n}
{p.plat.toUpperCase()}
{p.sub}
AVG {p.avg}
))}
); }; window.StreamerPage = StreamerPage;