<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[MERN Request Flow Explained: What I Finally Understood]]></title><description><![CDATA[A personal journey through the MERN request flow, connecting React, Axios, Express, routes, controllers, MongoDB, JWT authentication, and state management.]]></description><link>https://sidd-blog.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6aa7a01bec867bbef2131b6d/507ba98a-801c-4423-b3e5-8424396a8de2.png</url><title>MERN Request Flow Explained: What I Finally Understood</title><link>https://sidd-blog.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 00:27:34 GMT</lastBuildDate><atom:link href="https://sidd-blog.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What I Finally Understand The Mern Flow]]></title><description><![CDATA[When I first started this journey, it was literally a painful sprint that I just wanted to get through.
New terms. New ways of thinking. Syntax errors. And every single roadblock felt like a life sent]]></description><link>https://sidd-blog.hashnode.dev/what-i-finally-understand-the-mern-flow</link><guid isPermaLink="true">https://sidd-blog.hashnode.dev/what-i-finally-understand-the-mern-flow</guid><category><![CDATA[MERN Stack]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[React]]></category><category><![CDATA[Node.js]]></category><dc:creator><![CDATA[Siddharth K]]></dc:creator><pubDate>Mon, 14 Sep 2026 09:04:11 GMT</pubDate><content:encoded><![CDATA[<p>When I first started this journey, it was literally a painful sprint that I just wanted to get through.</p>
<p>New terms. New ways of thinking. Syntax errors. And every single roadblock felt like a life sentence.</p>
<p>Then something happened.</p>
<p>I started to understand what was happening behind the scenes — not because I was continuously writing syntax, but because I started understanding the <strong>architecture behind it</strong>.</p>
<p>One thing I realized I was actually good at was looking for the bigger picture: understanding how data flows through the application and how the different mechanisms work together.</p>
<p>Getting to that understanding takes an immense amount of time. Sometimes, understanding the <em>why</em> takes much longer than actually writing the code.</p>
<p>There are still a couple of blocks left to kick in. My execution isn't where I want it to be yet.</p>
<p><strong>But the start has already been kicked in.</strong></p>
<p><strong>where this big picture clicked??,well ..</strong></p>
<p>When I began my first MERN stack walkthrough with Net Ninja, it genuinely felt like entering a new world.</p>
<p>A world full of new facts, new concepts, new syntax, and — most importantly — the challenge of <strong>keeping up with him.</strong> <em>(Damn.)</em></p>
<p>Not gonna lie, sometimes it felt like jumping into a well without knowing how deep it was.</p>
<p>And watching the tutorial wasn't the only part.</p>
<p>I had to learn by myself too.</p>
<p>Whenever I stumbled upon a technical term or syntax that I didn't understand, I'd Google it or GPT it. <em>(Great mentor sometimes. I torture it for my own well-being sometimes.)</em> 😂</p>
<p>That process turned into a rabbit hole.</p>
<p>One question would lead to another question, which would lead to another concept, and suddenly I had spent a ridiculous amount of time understanding something that initially looked like a tiny piece of code.</p>
<p>But strangely, that rabbit hole started feeling like <strong>a million-dollar learning experience.</strong></p>
<p>Because eventually, something started changing.</p>
<p>I wasn't just seeing individual lines of code anymore.</p>
<p>I started seeing <strong>why they were there.</strong></p>
<p>I started connecting the frontend, backend, routes, controllers, models and database into one continuous flow.</p>
<p>And that's when it clicked.</p>
<p><strong>The big picture wasn't something I could memorize from a tutorial.</strong></p>
<p>It was something I had to slowly build in my head.  </p>
<p><strong>btw what is that big picture i am talking about??</strong></p>
<p>The big picture started becoming clearer when I stopped looking at individual concepts and started asking simple questions.</p>
<p><strong>What actually happens when a user clicks the Login button?</strong></p>
<p>Or when a user clicks <strong>“Add Workout”</strong>?</p>
<p>That's when all those concepts that I had learned separately suddenly started connecting.</p>
<p>I started seeing something like this:<br />User clicks -&gt; React local state captures the input -&gt; fetch / Axios sends the request -&gt; Browser checks CORS rules -&gt; Request reaches the server -&gt; JWT middleware -&gt; Router -&gt; Controller -&gt; Database / application logic ↓-&gt;Response sent back -&gt; Frontend receives it -&gt; dispatch(action) -&gt; reducer processes it -&gt; New global state -&gt; Provider makes the updated state available -&gt; React rerenders -&gt; Updated dashboard  </p>
<p>And suddenly I was looking at all the things I had previously learned as if they were pieces of the same machine.</p>
<p><code>req.body</code> wasn't just some syntax anymore.</p>
<p>JWT wasn't just some random authentication term.</p>
<p>The router wasn't just another file.</p>
<p><code>dispatch</code>, <code>action</code>, <code>reducer</code>, and <code>Provider</code> weren't isolated React concepts either.</p>
<p><strong>They all had a place in the journey of the data.</strong></p>
<p>And this was probably one of the most satisfying moments of the whole learning process.</p>
<p>Because I realized:</p>
<blockquote>
<p><strong>“Wait… I wasn't randomly learning all these things.”</strong></p>
</blockquote>
<p>I was collecting pieces without knowing what picture they belonged to.  </p>
<h2>And then the tunnel got darker. 😂</h2>
<p>Just when I thought:</p>
<blockquote>
<p><strong>“Yesss 😍 I finally understand how this works!”</strong></p>
</blockquote>
<p>I looked deeper.</p>
<p>And suddenly there were <strong>HTTP-only cookies, XSS, CSRF, CORS, JWT security, authentication flows...</strong></p>
<p>I was like:</p>
<blockquote>
<p><strong>“What the hell is this?!”</strong> 😂</p>
</blockquote>
<p>It felt like walking through a dark tunnel, finally finding a light at the end, and then realizing the light was actually the entrance to a <strong>museum of scary technical artifacts.</strong></p>
<p>Every time I understood one thing, another question appeared.</p>
<p>Why HTTP-only cookies?</p>
<p>What exactly can JavaScript access?</p>
<p>What is XSS?</p>
<p>Why does CSRF matter?</p>
<p>Why does the browser behave differently for different requests?</p>
<p>And that's when I realized something else about development:</p>
<p><strong>Understanding the happy path is only the beginning.</strong></p>
<p>Once you start looking underneath the surface, you start discovering the mechanisms, edge cases, security concerns, and decisions that make the system actually work.</p>
<p>And honestly?</p>
<p>Sometimes the reaction is simply:</p>
<blockquote>
<p><strong>“Why did I choose this path?”</strong> 🤣</p>
</blockquote>
<p>But that's also what made the journey interesting.  </p>
<p>The more I entered, the more I explored.</p>
<p>Nothing more, nothing less — I could probably keep filling pages with all the things I came across.</p>
<p>And I can assure you:</p>
<p><strong>BOY OH BOY, THIS WAS AND IS PAINFUL AS HELL!! 🤣</strong></p>
<p>But jokes aside, I realized something about what actually keeps me going.</p>
<p>It isn't motivation.</p>
<p>It isn't even enjoyment.</p>
<p><strong>It's curiosity.</strong></p>
<p>And yeah… <strong>curiosity is painful too.</strong> 🤣</p>
<p>One question leads to another. One concept opens the door to another concept. Sometimes I spend far more time understanding <em>why</em> something works than actually writing the code.</p>
<p>But somewhere in all that frustration, I realized that I genuinely love creating something on my own.</p>
<p>There is this weird feeling when something that existed only as an idea in your head finally becomes an actual working application.</p>
<p>It's painful.</p>
<p>It's enjoyable.</p>
<p>It's frustrating.</p>
<p>It's satisfying.</p>
<p>Somehow, it's all of those things at the same time.</p>
<h3>And that's a completely different vibe.</h3>
<p><strong>Learning is one thing. Execution is another.</strong></p>
<p>My learning journey wasn't limited to MERN either.</p>
<p>As I started exploring LLMs and other technologies, the picture became much bigger.</p>
<p>The concepts felt rationally satisfying once I understood how they worked.</p>
<p>But <strong>understanding something doesn't mean I can immediately execute it.</strong></p>
<p>And I'm okay with that.</p>
<h3><strong>Execution takes time.</strong></h3>
<p>There are things I can explain but still struggle to implement from scratch. There are things I understand architecturally but need more repetition to make them natural.</p>
<p>And that's fine.</p>
<p>Because at the end of the day, <strong>we are the executors — not just the thinkers of our ideas.</strong></p>
<p>The goal isn't to eliminate the gap overnight.</p>
<p>It's to keep closing it.  </p>
<p>But I don't want my workflow to simply be:</p>
<pre><code class="language-plaintext">Prompt → Generate → Copy → Run → Done
</code></pre>
<p>That approach can produce a result without necessarily producing <strong>understanding</strong>.</p>
<p>Instead, I try to use AI to question things.</p>
<p>Why does this code work?</p>
<p>What is happening behind this abstraction?</p>
<p>Why did this error occur?</p>
<p>What would happen if I changed this?</p>
<p>Can I build it myself after understanding the explanation?</p>
<p>Sometimes I'll use generated ideas as a starting point, then experiment with them, break them, change them, and learn from what happens.</p>
<p>For me, the interesting part isn't just getting the answer.</p>
<p>It's using the answer to <strong>build a better mental model of the system.</strong></p>
<p>So my preferred loop is closer to:</p>
<pre><code class="language-plaintext">Question
   ↓
Explore
   ↓
Understand
   ↓
Experiment
   ↓
Make mistakes
   ↓
Debug
   ↓
Build
   ↓
Understand better
</code></pre>
<p>rather than:</p>
<pre><code class="language-plaintext">Prompt → Generate → Result
</code></pre>
<p>And I think that's one of the biggest things this journey has taught me so far.</p>
<h3><strong>AI can accelerate the journey, but it shouldn't replace the journey.</strong></h3>
<p><strong>what is even the worst part ??</strong>  </p>
<p>Even though we know that execution takes time, knowing that doesn't make the process painless.</p>
<p>Sometimes it stings so much that you start questioning yourself:</p>
<p><strong>Do I really need to push myself this hard?</strong></p>
<p><strong>Should I keep working on this, or should I do something that actually gives me peace?</strong></p>
<p><strong>Why am I disrupting my own peace for this?</strong></p>
<p>And I think that's where the journey becomes much more personal.</p>
<p>Every influencer, colleague, friend, or peer seems to have a different path. And sometimes you can't help but wonder:</p>
<blockquote>
<p><strong>“Why are you still doing this? Why are you putting yourself through this every night?”</strong></p>
</blockquote>
<p>And honestly, sometimes my answer is simply:</p>
<p><strong>“Because I can't stop.”</strong></p>
<p>There's a line from one of my favorite wrestlers, Nic Nemeth, that captures that feeling for me — that feeling of being unable to simply walk away from the thing you're chasing.</p>
<p>Maybe that's what a lot of developers and other people going through their own journeys experience too.</p>
<p>Every roadblock feels personal when you're the one standing in front of it.</p>
<p>Some roadblocks stay inside the code.</p>
<p>Some get into your head.</p>
<p>And sometimes they even spill into your everyday life.</p>
<p>But I've started to believe that there's a difference between <strong>suffering for something blindly</strong> and <strong>pushing through difficulty because you genuinely value where the journey is taking you.</strong></p>
<p>I'm still not the best at what I do.</p>
<p>I'm not the best at any particular technology.</p>
<p>There are days when I put in the effort and still end up staring at something that doesn't work, wondering:</p>
<p><strong>“Why isn't this working?”</strong></p>
<p>Sometimes it genuinely hurts.</p>
<p>But I keep coming back to the same two things:</p>
<p><strong>independence and the love of the game.</strong></p>
<p>I want to be able to take an idea that exists in my head and eventually turn it into something that actually works.</p>
<p>I want to understand what I'm building instead of simply watching someone else build it.</p>
<p>And maybe that's why I keep taking the plunge.</p>
<p>Not because I have everything figured out.</p>
<p>Not because I'm the best.</p>
<p>Not because every day is enjoyable.</p>
<p>But because <strong>standing still feels less meaningful to me than taking another step forward.</strong></p>
<p>That has been my journey so far.<br /><strong>So, what did this journey actually teach me?</strong></p>
<p>If I had to take something away from this entire journey, it wouldn't be a particular framework, programming language, or technology.</p>
<p>It would be the way I started looking at things.</p>
<p>I used to think that being good at development meant being able to write code quickly and remember everything without looking it up.</p>
<p>Now I see it differently.</p>
<h3>Understanding and execution are two different things.</h3>
<p>I can understand what a system is supposed to do and still struggle to implement it from a blank file. I can understand the architecture and still forget a piece of syntax. And that's okay.</p>
<p>Execution takes repetition.</p>
<p>It takes mistakes.</p>
<p>It takes trying again after something completely refuses to work. 😂</p>
<p>Another thing I learned is that <strong>AI doesn't have to replace the learning process.</strong></p>
<p>I can use AI to get an explanation, explore an idea, understand an error, or look at a different approach. But I still want to question the answer, experiment with it, break it, fix it, and understand why it works.</p>
<p>For me, the goal isn't:</p>
<p><strong>Prompt → Generate → Result.</strong></p>
<p>It's more like:</p>
<p><strong>Question → Explore → Understand → Experiment → Make mistakes → Learn → Build.</strong></p>
<p>And somewhere in between all of that, I realized what actually keeps me moving.</p>
<p><strong>Curiosity.</strong></p>
<p>Motivation comes and goes.</p>
<p>Enjoyment comes and goes.</p>
<p>But curiosity keeps asking:</p>
<p><strong>“What happens if I try this?”</strong></p>
<p>And maybe that's enough to keep going.</p>
<p>I'm still learning.</p>
<p>I'm still making mistakes.</p>
<p>I'm still not the best at the technologies I'm working with.</p>
<p>There are still plenty of things I can't execute independently yet.</p>
<p>But I don't think the goal is to become perfect before moving forward.</p>
<p>The goal is to keep closing the gap between <strong>what I understand and what I can actually build.</strong></p>
<p>When I started this journey, I felt like I was walking through a dark tunnel without knowing where it would lead.</p>
<p>Now I can see a little further ahead.</p>
<p>And honestly, there's still a ridiculous amount of tunnel left. 😂</p>
<p><strong>But the light is there.</strong></p>
<p><strong>And the start has already been kicked in.</strong></p>
]]></content:encoded></item></channel></rss>