Chapter 1 — The First Stream
Chloe Jiang stared at the crumpled résumé in the trash can like it was a white flag stabbed into her day.
“Your education isn’t a match,” the woman behind the desk had said, lips pressed flat. “Try something more… realistic.”
Translation: go find a man to pay your bills.
She walked out of the glass building feeling as if the city had spat her back onto the sidewalk. The evening air smelled like rain and hot dog carts. Interviews were supposed to be chances, not little funerals for hope.
Her apartment wasn’t much—one window, a wobbly table, a mattress on the floor that believed in gravity with religious zeal. She kicked off her flats, flopped onto the mattress, and stared at the hairline crack spidering across the ceiling. Rent was due in twelve days. Her wallet contained a debit card with the emotional range of a brick, two singles, and a coffee punch card with only one sad stamp.
“Great,” she muttered. “Love that for me.”
Her friends in college used to joke that she could make money just by sitting in front of a camera and breathing. “With that face?” they’d hoot. “Chloe, please. Go live and let the internet be your boyfriend.” She always laughed it off. The idea of performing for strangers made her skin itch.
But hunger is an honest career coach.
Chloe sat up, dragged the wobbly table to the window for the illusion of good lighting, and set her aging laptop on top. She searched: how to stream. The search results coughed up tutorials, hustle-bro pep talks, and a sea of neon thumbnails. She picked the platform with the friendliest onboarding screen—StreamWave—and created an account.
Display Name.
She typed, erased, typed again.
Her brain supplied memories of campus jokes, of the Chinese porridge she loved on cold mornings, of the username that would make her laugh if no one else did.
PorridgeQueen.
“That’s ridiculous,” she told the air. And hit Save.
Next, the platform’s StarCoins primer: $100 = 100 StarCoins. Gifts ranged from tiny red hearts (0.1 StarCoin) to a flashy Super Rocket (1000 StarCoins), to a Sports Car (100 StarCoins), to a Luxury Yacht (5000 StarCoins). She skimmed through the rest—chat moderation, reporting trolls, enabling filters—until she reached the big, pulsing button at the bottom of the screen:
GO LIVE.
Her hand hovered.
“You can still back out,” fear whispered. “It’s not too late to get a night shift somewhere that smells like bleach.”
“And it’s not too late to try,” something stubborn answered.
She clicked.
The laptop’s camera turned her into a small rectangle of nerves. She adjusted the angle with a paperback and a shoebox, then toggled Soft Glam on the beauty slider—a gentle nudge, not a plastic mask. Her lips looked rosier; her eyes brighter; her cheekbones borrowed from someone rich.
“Hi,” she tried. Too quiet. She cleared her throat. “Hi! I’m… Chloe. But on here I’m PorridgeQueen. I, um, just hit ‘Go Live’ for the first time.”
For a heartbeat, nothing. Then the viewer count trickled from 0 to 1 and back to 0 like a faucet that refused to commit. A gray username appeared at the top: User-3077585321 entered the room. It vanished. Another one blinked in, then out. She felt ridiculous, like a street performer miming at a crosswalk in front of cars that never stop.
Her fingers fiddled with the headphone wire she wasn’t using. “I can do… mental math?” she offered into the void, wincing as she heard herself. “That’s not a talent. That’s a… school subject.”
A new name popped up. Not gray. Not anonymous.
ToxicBug entered the room.
The chat chimed.
ToxicBug: So, are we watching you meditate?
Chloe blinked, then smiled despite herself. “Oh! No. Not meditating. First stream jitters. I wasn’t sure what to say.”
ToxicBug: Do a talent. Any talent.
“I can calculate fast,” she said, because her mouth outran her caution. “Like, sums.”
ToxicBug: 158,082 + 5,640,738 = ?
Chloe glanced off-screen as numbers unspooled in her head, neat little trains switching tracks. “5,798,820,” she said, then added, with a sheepish flourish, “Fast, right?”
Chat paused.
ToxicBug: 6/10 for confidence.
ToxicBug sent Heart ×1 (0.1 StarCoin)
The tiny heart animation bobbed up the screen like a bubble. It was nothing. It was everything. Chloe pressed her fingers into a small heart and smiled. “Thank you! For the heart and for, um, grading my math.”
User: crabbyhands: One heart and she’s thrilled. New streamers are so easy.
User: GiveMeBearVotes: Do a dance and I’ll send a Sports Car.
User: ShyLobster: Stand up, hold the chair, and sway for a minute. Easy money.
Chloe’s cheeks warmed. The viewer count crept to 12. She gave a tiny, polite laugh that meant no, but thanks. “I—don’t really dance. I mean, I do, but not like—chair choreography.”
ToxicBug sent Sports Car ×1 (100 StarCoins)
ToxicBug: Since we’re apparently auditioning clowns—mods, please.
The car streaked across her screen in a burst of neon confetti. The number on her dashboard jumped. Chloe’s heart tripped. “Thank you! Oh my God—thank you for the car.” She fumbled through the settings, found Assign Moderator, and clicked ToxicBug.
A new badge appeared by his name.
ToxicBug: If someone’s gross, you kick them. Don’t ask them to be less gross.
User: BigBrain: ToxicBug is giving teacher energy.
User: NiceTry: Mod power corrupts absolutely.
The chat bickered; the viewer count bobbed like a cork. Chloe breathed through the noise. Praise and mockery sounded weirdly similar when they hit the same part of your brain.
A notification slid onto the screen: Incoming Duel Request from RayDawn. Accept?
Chloe froze. She’d seen a tutorial on Duels—streamers pitted against each other for five minutes while their viewers tipped to push them up a split-screen scoreboard. Loser performed a penalty agreed on beforehand. Win or lose, there was often a consolation gift—the internet’s version of “good game.”
The name rang a bell. RayDawn. She clicked his profile before she could overthink it: slick thumbnails, slicker jawline, 120k followers, clips labeled “Wrecking Pretenders” and “No-Filter Challenge.” His image warped at the edges from a beauty slider pulled to its limits.
She accepted the duel.
Her screen split in half. He smirked at her through a very symmetrical face. “Rookie?”
“First day,” Chloe admitted.
“Cool,” he said, voice silked with superiority. “We’ll keep it simple. Loser turns off filters and shows us that brave, bare little face. Unless…” He grinned, shark-bright. “You’d rather concede now and send me a Super Rocket.”
A thousand StarCoins. A thousand real dollars. Chloe couldn’t afford a pizza. “No rocket,” she said evenly. “We’ll play.”
“So brave.” His smirk widened. “Chat, 5 minutes. Let’s teach the app’s newest princess how this works.”
The duel countdown appeared—5:00—and began bleeding seconds. Ray’s side spiked almost immediately: 300, 540, 890. Chloe’s score crawled: 10.
ToxicBug sent Sunglasses ×1 (10 StarCoins)
ToxicBug: You do know he hunts rookies, right? He makes them switch off filters to humiliate them and farm hate-watches.
User: popcorn: Classic Ray.
User: catnip: He never fights anyone his own size.
Chloe drew a breath. She could feel the old instinct to apologize trying to rise—sorry I’m new, sorry I’m not flashy, sorry I don’t chair-dance—but something else lifted its head too. Annoyance. Curiosity. A ridiculous sense of play.
“Thank you for the shades,” she told ToxicBug lightly, and lifted both hands to frame her face with two goofy V-signs. “I was born ready to be a rabbit.”
User: lol: Did she just… bunny pose?
User: ohno: She’s cute. I hate this for my wallet.
The timer ticked down. Ray shouted at his viewers to “push, push, PUSH,” his voice shredding at the edges. Chloe’s side held steady at not-much. Her stomach felt like it did on roller coasters, right before the drop.
ToxicBug sent Sports Car ×10 (1000 StarCoins)
ToxicBug sent Knight’s Guard ×1 (1314 StarCoins)
The room detonated. A cascade of confetti washed over her half of the screen; a medieval shield spun up with a metallic clang and settled at her corner like a loyal sentinel. Her score blew past Ray’s and kept climbing: 10,520, 12,834, 23,340.
Chloe’s mouth fell open. “I— That’s too much— you don’t have to—”
ToxicBug: You’re streaming to earn money. Don’t make it weird.
Ray’s eyes widened, then narrowed, as his chat scrambled to keep up. Small gifts peppered his screen. His bar crawled. The timer slid to 0:42.
And then a new name appeared on Ray’s side with the kind of animated entrance that sucker punched the room.
Zephyr sent Luxury Yacht ×1 (5000 StarCoins)
Ray whooped so loudly the audio clipped. His score lunged ahead. The timer became a drum in Chloe’s ears. She hadn’t even known you could enter a room without setting off confetti. Whoever Zephyr was, he knew the platform better than she did.
“Looks like you’re taking off the mask,” Ray purred, confidence snapping back into place.
Chloe felt the flush crawl up her neck. If she lost, she’d turn off filters. If she won, she’d… what? She hadn’t dared to imagine it. She glanced at chat.
ToxicBug: Breathe.
User: bread: Win or lose, you’re fine.
User: morningafter: Just don’t disappear after.
User: milo: (first message) 🙃
The timer hit 0:00. The duel locked.
Ray’s bar: 34,807.
Chloe’s bar: 29,154.
Loss.
For a second, the room held its breath with her.
Then she nodded at the camera, a small, steady thing, and said, “Okay. Deal is a deal. Filters off.”
StreamWave had a One-Click Off. She found it and tapped. Her face sharpened into its unedited truth: skin with pores and a soft glow of sweat, thick lashes that were her own, a mouth still a little bitten from nerves. A girl who hadn’t had dinner yet.
Chat fell strangely quiet.
User: okay: Wait.
User: help: She looks—
User: ripme: Don’t turn the filter back on.
Ray stared for a fraction too long, like he’d miscounted a step and tripped. Then he coughed out a laugh. “A-alright, brave. And now—”
“You said bare face,” Chloe cut in gently. “I don’t wear makeup. So… that’s it, right?”
A beat. Ray swallowed. “Right. That’s— that’s it.”
User: convert: She said “that’s it” and somehow it’s the cutest sentence I’ve heard today.
User: thirst: That face could sell me vitamins. I’d buy two.
RayDawn sent Super Rocket ×1 (1000 StarCoins)
The rocket screamed up her screen, a comet leaving a glitter trail.
Chloe blinked. “You won. Why are you tipping me?”
“Consolation gift,” Ray said, shrugfish smile pasted back on. “Platform culture. The winner tosses something to the loser. Courtesy.” He cleared his throat. “You’ll, uh, get used to it.”
Chloe found herself smiling again despite the flush in her ears. “Thank you. I’ll… remember that.”
ToxicBug: Remember something else: you don’t owe anyone anything beyond the rules you agreed to.
User: milo: Remember to drink water.
User: dadmode: ^ this
She laughed, grabbed her plastic bottle, and took a gulp. It tasted like the promise of a second chance.
The duel ended. Ray vanished in a sparkle of exit graphics. The viewer count dipped, then climbed again as curiosity feeders drifted in. Chloe was about to thank the people who had stayed when the chat lit with a new arrival—no animation, just a name that seemed, somehow, to carry weather with it.
Zephyr entered the room.
No one would have noticed if the chat hadn’t gone weirdly reverent for half a second.
User: lorekeeper: He came here?
User: cloud: Daymn.
User: crumbs: He usually ghost-watches.
Chloe had no idea what “ghost-watching” was, but she felt it—the way a room changes when someone powerful walks in. She tamped down the nerves and smiled at the camera, real face and all.
“Welcome to the stream,” she said, and meant it.
Zephyr: Good voice.
“Thank you,” she replied, surprised into honesty. “I didn’t think I had one.”
He didn’t tip. He didn’t ask her to do anything. He didn’t say another word. He simply sat there, a presence you could feel even in silence, like a skyscraper’s shadow at noon.
Chloe adjusted her ponytail with fingers that had finally stopped shaking. “So,” she said, trying for light, “since I’ve already embarrassed myself with math and filters, I might as well do one more thing before I log.”
User: popcorn: oh?
User: signme: Here we go.
“I made a playlist,” she confessed. “For something called—don’t laugh—soft shout. I don’t think it’s a real genre. It’s just… personalized welcome lines. I rehearsed them on my microwave because my mirror kept judging me.”
The chat perked up like a field of meerkats.
She queued the first instrumental. Something bubbly and harmless bounced in the background. Then she spoke, warm and a little shy, letting each line land like a wink.
“Welcome, ToxicBug—the only bug I’m happy to see on my screen. Please don’t eat my cables.”
“Welcome, milo—if that’s your real name. If it’s short for ‘milk,’ we’ll have to talk.”
“Welcome, Zephyr—I hope you brought a breeze. This room is getting hot.”
Laughter splashed up the chat.
ToxicBug sent Sports Car ×1
milo sent Super Rocket ×1
User: i’mdead: She said breeze. I’m screaming.
User: teachme: “Soft shout” is now a thing. You invented it. Congrats.
Chloe clapped a hand over her mouth, mortified and pleased. “I’m turning the stream off before I say something I’ll regret. Thank you for being kind. For real.”
ToxicBug: Set up a fan group. You’ll need one.
milo: DM me if you want help picking gear.
Zephyr: Don’t let the platform push you into holes you don’t want to stand in.
The last line made something tight in Chloe’s chest loosen. “I won’t,” she promised, though she wasn’t entirely sure how.
She gave the camera a small, earnest wave. “Goodnight.”
And clicked End Stream.
The room folded back into her apartment’s quiet. The laptop hummed. She sat very still, listening to the sound of her own breath. Then she opened the dashboard, hands trembling again for a different reason, and stared at the number: after the platform split and taxes, tonight’s balance was more money than she’d seen in a month.
She didn’t cry. Not really. Her eyes just decided moisture was trendy.
“Okay,” she whispered to the empty room. “Okay. Tomorrow we do it again.”
Her phone buzzed with a new DM on StreamWave.
milo: Add me on chat. Easier to help.
Chloe hesitated for a heartbeat, then typed back.
PorridgeQueen: Tomorrow. And thank you. For the… rocket milk.
There was a pause. Then a single emoji slid onto her screen.
Chloe laughed into the quiet, the sound bright as a match, and opened a blank note labeled To-Buy: Streaming Gear. Outside, the city breathed. Inside, the crack in the ceiling looked a little less like a fault line and a little more like a map.