Fanfy
.studio
Background image
← Back
0 likes

SWIM

Fandom: NetJJ, net siraphop manithikhun, jj radchapon phornpinit, boyslove

Created: 8/21/2026

Tags

RomanceDramaAngstHurt/ComfortCurtainfic / Domestic StoryExplicit LanguageJealousy
≡ Contents

Chlorine and Consequences

The moonlight hit the surface of Net’s private pool in shimmering, jagged shards of silver. It was a quiet night, the kind of stillness that usually invited peace, but for Net, it was the perfect backdrop for a long-overdue confrontation. He stood by the edge, the water dripping from his broad shoulders, watching the glass doors of the patio.

JJ appeared a moment later, clad in a loose tank top and swim trunks, clutching a towel like a shield. He was pouting, his lower lip tucked out in that way that usually made Net want to laugh—or bite it.

"You’re finally here," Net said, his voice dropping an octave, echoing off the tiled walls. "I thought you were just complaining on Instagram for the attention, JJ."

"I wasn't complaining!" JJ huffed, stepping closer to the pool’s edge. "I’ve been asking you to go swimming for weeks, and then you just post a story of yourself alone? It’s rude, Net. We’re friends. Friends swim together."

Net climbed out of the pool in one fluid motion, the water slicking his skin, making his muscles stand out in sharp relief under the dim patio lights. He didn't grab a towel. Instead, he walked straight into JJ’s personal space, forcing the smaller man to take a half-step back.

"Is that all we are, JJ? Friends who swim?" Net’s eyes were dark, intense, stripped of the playful mask he usually wore.

JJ laughed nervously, his eyes darting everywhere but Net’s bare chest. "I mean, yeah? What else would we be? Don't be weird, Net. The water looks good, let me just—"

Net grabbed JJ’s wrist, his grip firm but not painful. The heat from his palm seared JJ’s skin. "I’m tired of the games, JJ. I’m tired of you pretending you don’t feel the air get thick every time I walk into a room. I’m tired of you calling this 'friendship' when you look at me like you’re starving."

JJ’s breath hitched. He tried to pull back, but his back hit the glass door. "Net, stop. You’re joking. You’re always joking."

"Do I look like I'm joking?" Net leaned in, his face inches from JJ’s. The scent of chlorine and expensive cologne filled JJ’s senses. "I invited you here because I’m done waiting for you to stop being in denial."

Before JJ could stammer out another excuse, Net closed the distance. The kiss wasn't gentle; it was a collision of months of repressed frustration and hidden longing. Net’s mouth crashed against JJ’s, his tongue demanding entry with a predatory hunger. JJ let out a muffled sound of surprise, his hands fluttering uselessly against Net’s wet chest before instinctively curling into the damp skin.

The kiss deepened, turning messy and desperate. Net’s hands moved from JJ’s wrists to his waist, hauling him flush against his body. The contrast between JJ’s dry clothes and Net’s soaking skin sent shivers down JJ’s spine. JJ felt his knees go weak, his mind spinning into a blur of oh no and finally.

"Net... wait," JJ gasped when they broke for air, his face flushed a deep crimson. "We shouldn't... this is..."

"This is what you want," Net growled, trailing his lips down JJ’s neck, biting the sensitive skin right above his collarbone.

"I don't—I'm not—" JJ’s protest died in his throat as Net’s hand slid under the hem of his tank top, warm fingers dragging over his ribs. JJ’s eyes fluttered shut. He knew he should say no, he knew he should maintain the boundary of their "friendship," but his body was betraying him, arching into the touch.

Net didn't give him time to think. He hoisted JJ up, JJ’s legs instinctively wrapping around Net’s waist. He carried him inside, dripping water all over the hardwood floor, and kicked the bedroom door shut.

He dropped JJ onto the bed, the mattress bouncing under his weight. Before JJ could scramble back, Net was over him, pinning his arms above his head. The air in the room felt charged with electricity.

"Net, I’m not sure," JJ whispered, his heart hammering against his ribs like a trapped bird. His voice was shaky, a mix of genuine nerves and the overwhelming sensation of Net’s weight on him. "Maybe we should talk first?"

"We've talked enough for a lifetime," Net said, his voice a low, dangerous rumble. He began stripping JJ’s clothes off with an efficiency that left JJ breathless. When they were both bare, the sight of Net—strong, tanned, and clearly aroused—made JJ’s head swim.

Net started low, his mouth working over JJ’s stomach, his tongue swirling around his navel before moving lower. JJ’s hands tangled in Net’s damp hair, his hips bucking rhythmically. "Net, please... I..."

"You what, JJ? Tell me you don't want this," Net challenged, looking up, his eyes burning.

JJ couldn't say it. The lie felt too heavy for his tongue. Instead, he let out a choked moan as Net took him into his mouth. The sensation was overwhelming. JJ wasn't used to this level of intensity; Net was thorough, his tongue flicking and swirling with a practiced grace that had JJ seeing stars.

"Net, wait, it’s too much," JJ whimpered, his fingers clutching the sheets. "I’m going to—"

Net didn't stop. He pushed JJ further, ignoring the half-hearted pleas to slow down, driving him toward a peak that felt like it would shatter him. When JJ finally came, his body convulsing, Net didn't let him rest. He moved up, kissing JJ’s tear-streaked face, his hands already reaching for a drawer in the nightstand.

"Net, I’m tired... I need a second," JJ breathed, his voice small. The overstimulation was making his skin feel hypersensitive, every touch feeling like a spark of lightning.

"I’ve waited long enough, JJ. You don't get to run away now," Net murmured, his tone possessive. He prepped JJ with a focus that was almost clinical, his fingers stretching JJ open. JJ winced, the sensation of being filled so suddenly sending a jolt through him.

"It hurts a little," JJ complained, his eyes watering. "Net, maybe not tonight?"

"Relax for me, baby. Just breathe," Net whispered, though he didn't stop his movements. He positioned himself, the tip of his length pressing against JJ’s entrance. With a slow, steady thrust, he buried himself inside.

JJ let out a sharp cry, his back arching off the bed. "Net! Stop, stop, it’s too big, I can’t—"

"Shh, yes you can. You’re built for me," Net said, leaning down to capture JJ’s lips, stifling his protests. He began to move, his pace slow at first, then gaining momentum. The friction was intense, hitting a spot deep inside JJ that made his toes curl and his vision go white.

The pleasure was so sharp it was almost painful. JJ was caught in a whirlwind of sensation. He tried to push Net’s shoulders away, his mind clouded by the sheer sensory overload. "Net, please, enough... I’m too sensitive, stop..."

But Net was lost in his own need, his rhythm becoming frantic. He gripped JJ’s hips, his fingers digging into the soft flesh, anchoring him as he pounded into him. JJ’s cries turned from protests into high-pitched, broken moans. He was overstimulated, his nerves firing in a way he had never experienced. Every thrust felt like it was echoing through his entire skeleton.

"I can't... Net, please, I’m gonna break," JJ sobbed, his head tossing from side to side on the pillow.

Net finally hit his limit, a low growl escaping his throat as he came deep inside JJ, his body trembling with the force of it. He collapsed onto JJ, their sweat-slicked bodies fused together, both of them gasping for air.

JJ lay there, trembling, his breath coming in ragged hitches. He felt raw, both physically and emotionally. The silence in the room was heavy, broken only by the sound of their synchronized panting.

Net shifted, propping himself up on his elbows to look down at JJ. His expression had softened, the predatory fire replaced by something infinitely more tender. He reached out, brushing a stray hair from JJ’s damp forehead.

"I’m sorry," Net whispered, though he didn't look entirely regretful. "I just... I’ve wanted you for so long, JJ. I lost control."

JJ looked up at him, his eyes red-rimmed. The denial he had been clinging to for months finally crumbled. He couldn't pretend this was just a friendship anymore. Not after this. Not after the way Net looked at him, as if he were the only thing in the world that mattered.

"You're an idiot," JJ whispered, his voice cracking.

"I know," Net smiled, a small, genuine thing. "But I'm your idiot. If you'll have me."

JJ reached up, his hand trembling as he touched Net’s cheek. "You really like me that much? Even when I'm annoying and I don't get it?"

"I love you that much, JJ," Net corrected, his voice firm. "I don't want to be 'just friends' who go swimming. I want to be the guy you come home to. I want to be your boyfriend."

JJ felt a fresh wave of tears prick his eyes, but this time, they weren't from the overwhelming sensation. They were from relief. He pulled Net down for a soft, lingering kiss—a kiss that finally felt like a beginning rather than a struggle.

"Okay," JJ murmured against Net’s lips. "Boyfriends. But if you ever do that again without letting me catch my breath, I’m breaking up with you."

Net laughed, a warm, rich sound that filled the room. "Deal. But I can't promise I won't try to persuade you into a second round tomorrow."

JJ groaned, burying his face in Net’s neck, but he didn't pull away. For the first time in a long time, he felt exactly where he was supposed to be. The water in the pool outside might have been cold, but in here, tucked against Net’s side, the world was finally, perfectly warm.

≡ Contents

Want to write your own fanfic?

Sign up on Fanfy and create your own stories!

Create my fanfic

Fanfy update

A new model for your stories

We've updated our generation model to make your stories even better. The new model is already on.

If you prefer the previous version, choose “Old” in your profile menu: click your avatar in the top right corner.

Your existing chapters are safe. Your choice applies to future generations.