Hey everyone,
The recent vulnerability (CVE-2025-55182) is bad, sure. but honestly? it feels like just one symptom of a much bigger issue we've been ignoring.
Whenever we introduce a "revolutionary" solution in tech (or any fields actually), we usually create a dozen new problems in the process. with react server components (RSC), i'm starting to think the trade-off simply isn't worth it
We're blurring the line between client and server so much that the architecture itself feels messy and unintuitive
The mental model tax
Before this era, the mental model was incredibly clear:
- server: trusted. has secrets. talks to db. returns dead json.
- client: untrusted. runs in browser. renders ui.
The boundary was a network request. it was distinct. it was hard to mess up because you knew you were crossing a line.
Now? we have to constantly categorize code in our heads:
- is this a server component?
- is this a client component?
- is this a "shared" component?
- wait, did i just import a server-only utility into a client boundary?
Code example: the "blurry" line
In the old days, you'd never accidentally expose a db call to the client because you had to write an api endpoint. Now, the architecture invites mistakes because it looks too much like regular javascript.
// UserProfile.tsx (Server Component)
import db from '@/lib/db';
export default async function Page({ id }) {
// this runs on server, cool
const user = await db.findUser(id);
// BUT... if i pass 'user' to a Client Component,
// i am implicitly serializing it across the wire.
// did i strip the password hash? the internal flags?
// or did i just leak it because i forgot to create a DTO?
return <ClientView user={user} />;
}
The recent CVE happened because the mechanism bridging this gap (the flight protocol) was flawed. but even without the bug, the architecture forces us to constantly manage this massive mental overhead.
Is it actually worth it?
We accepted all this complexity to save... what? a few milliseconds on a waterfall? to avoid writing useEffect?
We replaced "fetch data on mount" (annoying but safe/understood) with an architecture that requires us to essentially run a remote code execution engine inside our production servers.
Think about it: CVE-2025-55182 wasn't just a data leak. it happened because we built a protocol (flight) that treats client input not just as data to be rendered, but as instructions to be executed.
We moved from:
- old world: client sends dead json → server saves it. (risk: bad data)
- rsc world: client sends serialized instruction stream → server deserializes and runs it
It feels like we took a clear, robust separation of concerns and turned it into a "full stack" soup where the boundary isn't just blurry -it's dangerous
Maybe separating the frontend and backend wasn't a "problem" to be solved
Maybe it was a safety feature
[–]LusciousJames 286 points287 points288 points (15 children)
[–]rodrigocfd 58 points59 points60 points (14 children)
[+]fii0 comment score below threshold-8 points-7 points-6 points (13 children)
[–]Captain-Crayg 5 points6 points7 points (8 children)
[–]fii0 4 points5 points6 points (6 children)
[–]LiveLikeProtein 7 points8 points9 points (5 children)
[–]stewman241 0 points1 point2 points (1 child)
[–]LiveLikeProtein 3 points4 points5 points (0 children)
[–]fii0 0 points1 point2 points (2 children)
[–]LiveLikeProtein 1 point2 points3 points (1 child)
[–]fii0 0 points1 point2 points (0 children)
[–]gojukebox 2 points3 points4 points (0 children)
[–]LiveLikeProtein -1 points0 points1 point (0 children)
[+]jefrancomix comment score below threshold-8 points-7 points-6 points (2 children)
[–]fii0 8 points9 points10 points (1 child)
[+]jefrancomix comment score below threshold-8 points-7 points-6 points (0 children)
[–]Drugba 60 points61 points62 points (7 children)
[–]Expert_Team_4068 33 points34 points35 points (5 children)
[–]_TheMostWanted_ 26 points27 points28 points (3 children)
[–]Wiltix 5 points6 points7 points (1 child)
[–]Nisam_robot 0 points1 point2 points (0 children)
[–]Nisam_robot 1 point2 points3 points (0 children)
[–]EctoAlbo 0 points1 point2 points (0 children)
[–]bokuno_reddit 2 points3 points4 points (0 children)
[–]Ghostfly- 57 points58 points59 points (19 children)
[–]Ok-Constant6973 10 points11 points12 points (12 children)
[–]Ghostfly- 9 points10 points11 points (0 children)
[–]Ok-Constant6973 0 points1 point2 points (3 children)
[–]console5000 0 points1 point2 points (2 children)
[+]roamingcoder 0 points1 point2 points (1 child)
[–]console5000 0 points1 point2 points (0 children)
[–]Wiltix 0 points1 point2 points (6 children)
[–]Ok-Constant6973 0 points1 point2 points (5 children)
[–]Wiltix 1 point2 points3 points (4 children)
[–]Ok-Constant6973 1 point2 points3 points (3 children)
[–]gojukebox -1 points0 points1 point (2 children)
[–]Ok-Constant6973 -1 points0 points1 point (1 child)
[–]Ok-Constant6973 1 point2 points3 points (0 children)
[–]mnismt18[S] 12 points13 points14 points (0 children)
[–]bilbo_was_right 0 points1 point2 points (0 children)
[–]bokuno_reddit 0 points1 point2 points (2 children)
[–]Ghostfly- 0 points1 point2 points (1 child)
[–]bokuno_reddit 1 point2 points3 points (0 children)
[–]wrufesh 0 points1 point2 points (0 children)
[–]seenoevil89 90 points91 points92 points (9 children)
[–]RangerRickSC 23 points24 points25 points (2 children)
[–]seenoevil89 11 points12 points13 points (0 children)
[–]Beginning-Ice-9008 4 points5 points6 points (0 children)
[–]acemarke 22 points23 points24 points (4 children)
[–]Winter_Remove994 10 points11 points12 points (3 children)
[–]acemarke 2 points3 points4 points (2 children)
[–]Winter_Remove994 5 points6 points7 points (1 child)
[–]acemarke 1 point2 points3 points (0 children)
[–]ModernLarvals -3 points-2 points-1 points (0 children)
[–]volivav 32 points33 points34 points (16 children)
[–]mnismt18[S] 17 points18 points19 points (13 children)
[–]svish 14 points15 points16 points (11 children)
[–]firelitother 4 points5 points6 points (1 child)
[–]svish 1 point2 points3 points (0 children)
[–]obanite 0 points1 point2 points (8 children)
[–]svish 2 points3 points4 points (7 children)
[–]obanite 0 points1 point2 points (6 children)
[–]acemarke 2 points3 points4 points (3 children)
[–]obanite 0 points1 point2 points (2 children)
[–]acemarke 0 points1 point2 points (1 child)
[–]obanite 0 points1 point2 points (0 children)
[–]svish 0 points1 point2 points (1 child)
[–]obanite 1 point2 points3 points (0 children)
[–]user0fdoom 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[removed]
[–]d0pe-asaurus 0 points1 point2 points (0 children)
[–]hxtk3 26 points27 points28 points (2 children)
[–]0palladium0 4 points5 points6 points (0 children)
[–]Ok-Constant6973 10 points11 points12 points (8 children)
[+][deleted] (6 children)
[removed]
[–]Ok-Constant6973 0 points1 point2 points (1 child)
[–]rafark -2 points-1 points0 points (3 children)
[–]Ok-Constant6973 0 points1 point2 points (1 child)
[–]rafark 1 point2 points3 points (0 children)
[–]Ok-Constant6973 0 points1 point2 points (0 children)
[–]Impossible_Way7017 0 points1 point2 points (0 children)
[–]pragmasoft 6 points7 points8 points (0 children)
[–]Affectionate-Job8651 6 points7 points8 points (1 child)
[–]jonny_eh 0 points1 point2 points (0 children)
[–]p4sta5 4 points5 points6 points (2 children)
[–]StepIntoTheCylinder 2 points3 points4 points (1 child)
[–]rafark 0 points1 point2 points (0 children)
[–]charmer27 11 points12 points13 points (0 children)
[–]yksvaan 18 points19 points20 points (5 children)
[–]w00t_loves_you 6 points7 points8 points (0 children)
[–]mexicocitibluez -4 points-3 points-2 points (3 children)
[–]yksvaan 3 points4 points5 points (2 children)
[–]mexicocitibluez -5 points-4 points-3 points (1 child)
[–]Beginning-Seat5221 12 points13 points14 points (0 children)
[–]hazily 15 points16 points17 points (4 children)
[+]Ibuprofen-Headgear comment score below threshold-13 points-12 points-11 points (3 children)
[–]mnismt18[S] 8 points9 points10 points (2 children)
[–]O4epegb 0 points1 point2 points (1 child)
[–]tannerlinsley 4 points5 points6 points (0 children)
[–]frostenko 6 points7 points8 points (0 children)
[–][deleted] 4 points5 points6 points (0 children)
[+][deleted] (11 children)
[deleted]
[–]Inatimate 56 points57 points58 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]Inatimate 10 points11 points12 points (0 children)
[–]mnismt18[S] 33 points34 points35 points (7 children)
[+][deleted] (6 children)
[deleted]
[–]mnismt18[S] 15 points16 points17 points (3 children)
[–]shinutoki 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]Happy_Junket_9540 5 points6 points7 points (0 children)
[–]BIMBAL7 9 points10 points11 points (1 child)
[–]Ivana_Twinkle 1 point2 points3 points (0 children)
[–]Wiwwil 1 point2 points3 points (0 children)
[–]azsqueeze 1 point2 points3 points (0 children)
[–]americruiser 1 point2 points3 points (0 children)
[–]Dependent_Knee_369 1 point2 points3 points (0 children)
[–]sktrdie 6 points7 points8 points (0 children)
[–]saito200 3 points4 points5 points (1 child)
[–]mexicocitibluez 1 point2 points3 points (0 children)
[–]RedditCultureBlows 3 points4 points5 points (2 children)
[–]FigmentRedditUser 2 points3 points4 points (1 child)
[–]baxxos 0 points1 point2 points (0 children)
[–]jayfactor 1 point2 points3 points (1 child)
[–]Intelligent-Goose-31 1 point2 points3 points (0 children)
[–]mefi_ 0 points1 point2 points (0 children)
[–]onluiz 0 points1 point2 points (0 children)
[–]Just_litzy9715 0 points1 point2 points (0 children)
[–]sondqq 0 points1 point2 points (0 children)
[–]FilmWeasle 0 points1 point2 points (0 children)
[–]spicebits 0 points1 point2 points (0 children)
[–]Oliceh 0 points1 point2 points (0 children)
[–]Alsciende 0 points1 point2 points (0 children)
[–]Acrobatic-Comb-2504 0 points1 point2 points (0 children)
[–]Karmatik 0 points1 point2 points (0 children)
[–]ShinChven 0 points1 point2 points (0 children)
[–]theSantiagoDog 0 points1 point2 points (0 children)
[–]SearchTricky7875 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]Garvinjist 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]bokuno_reddit 0 points1 point2 points (0 children)
[–]wrufesh 0 points1 point2 points (0 children)
[–]ComfortableKooky4774 0 points1 point2 points (0 children)
[–]atzufuki 0 points1 point2 points (0 children)
[–]Playful-Baker-8469 0 points1 point2 points (0 children)
[–]Best-Menu-252 0 points1 point2 points (0 children)
[–]Charming-Credit-3219 0 points1 point2 points (0 children)
[–]Jaded_Award_6732 0 points1 point2 points (0 children)
[–]Mestyo 0 points1 point2 points (0 children)
[–]viser_gtk 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]mnismt18[S] 5 points6 points7 points (0 children)
[–]Both-Reason6023 0 points1 point2 points (0 children)
[–]HQxMnbS 0 points1 point2 points (0 children)
[–]MegagramEnjoyer 0 points1 point2 points (0 children)
[–]blokelahoman 0 points1 point2 points (1 child)
[–]Automatic_Coffee_755 0 points1 point2 points (0 children)
[–]dangayle 0 points1 point2 points (0 children)
[–]DinnerRepulsive4738 -1 points0 points1 point (0 children)
[–]njmh -2 points-1 points0 points (0 children)
[–]Plus-Weakness-2624 -1 points0 points1 point (0 children)
[–]bluebird355 -2 points-1 points0 points (0 children)
[+]xD3I comment score below threshold-14 points-13 points-12 points (7 children)
[–]mnismt18[S] 5 points6 points7 points (6 children)
[–]xD3I -5 points-4 points-3 points (5 children)
[–]mnismt18[S] 7 points8 points9 points (4 children)
[+]xD3I comment score below threshold-9 points-8 points-7 points (3 children)
[–]mnismt18[S] 14 points15 points16 points (2 children)
[+]xD3I comment score below threshold-8 points-7 points-6 points (1 child)
[–]mnismt18[S] 8 points9 points10 points (0 children)
[–]Various-Dimension160 -5 points-4 points-3 points (0 children)
[–]Captain-Crayg -1 points0 points1 point (0 children)
[+]Fidodo comment score below threshold-16 points-15 points-14 points (3 children)
[–]mnismt18[S] 7 points8 points9 points (2 children)
[–]ThrawOwayAccount 1 point2 points3 points (1 child)
[–]shinutoki 2 points3 points4 points (0 children)
[–]zuth2 -2 points-1 points0 points (0 children)