<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abhay Raj</title>
    <description>The latest articles on DEV Community by Abhay Raj (@abhayrsr).</description>
    <link>https://dev.to/abhayrsr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1439581%2Fd2b7de10-0561-47fc-bb2f-6b692f39f43b.png</url>
      <title>DEV Community: Abhay Raj</title>
      <link>https://dev.to/abhayrsr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhayrsr"/>
    <language>en</language>
    <item>
      <title>Where The Hell Did I go - Day 4 Log</title>
      <dc:creator>Abhay Raj</dc:creator>
      <pubDate>Thu, 12 Jun 2025 16:58:40 +0000</pubDate>
      <link>https://dev.to/abhayrsr/where-the-hell-did-i-go-day-4-log-l65</link>
      <guid>https://dev.to/abhayrsr/where-the-hell-did-i-go-day-4-log-l65</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Building while learning&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;People who’ve been reading my articles regularly might be wondering—where did this jarhead vanish after posting like a maniac for three straight days, and then suddenly went completely silent?&lt;/p&gt;

&lt;p&gt;Was it due to a dip in motivation? Or is he just “all talk, no walk”?&lt;/p&gt;

&lt;p&gt;The truth is—a lot happened in the last 10 days in my personal life, and because of that, I had to shut everything down.&lt;br&gt;
What happened exactly? Well… I’m not comfortable sharing that here, so I’ll keep it to myself.&lt;/p&gt;

&lt;p&gt;All I can say is—some of my close ones need me right now. So expect a few irregularities in my blogs over the next 10–15 days.&lt;/p&gt;

&lt;p&gt;And thanks for listening. Whoever’s reading this—you’re awesome. Truly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Progress
&lt;/h2&gt;

&lt;p&gt;Yesterday, after a long 7-day gap, I finally sat down and revisited my strategy.&lt;/p&gt;

&lt;p&gt;To be honest, the way I was learning Next.js was boring me to death. I was just watching tutorials and building those tiny, clone-style apps.&lt;/p&gt;

&lt;p&gt;But as a solo developer, my main focus is to learn, upskill, and ship fast.&lt;/p&gt;

&lt;p&gt;So, I’ve decided to switch completely to the official Next.js docs. If I ever get stuck, I’ll watch videos to fill in the gaps.&lt;/p&gt;

&lt;p&gt;Reading documentation is speeding things up—and I need that speed!&lt;/p&gt;

&lt;p&gt;In one of my earlier articles, I mentioned that I have some product ideas in my head that I want to turn into reality. And for that, Next.js is a key tool in my arsenal.&lt;/p&gt;

&lt;p&gt;I’ve already created a landing page to collect emails for this upcoming product. I plan to build it publicly—and Twitter (X) is going to be my place to share updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the product?&lt;/strong&gt;&lt;br&gt;
Check out this landing page for a rough idea of what I’m working on:&lt;br&gt;
👉 &lt;a href="https://vidzzy-landing-page.vercel.app/" rel="noopener noreferrer"&gt;Landing Page&lt;/a&gt;&lt;br&gt;
=&amp;gt; Do sign up for the updates!!&lt;/p&gt;

&lt;p&gt;Man… being a solo developer means I have to:&lt;/p&gt;

&lt;p&gt;✅ Learn to build stuff&lt;br&gt;
✅ Learn to design logos, banners, and visuals&lt;br&gt;
✅ Learn to market myself&lt;br&gt;
✅ Learn sales and communication&lt;/p&gt;

&lt;p&gt;These are all the things I realized while smashing my head against Canva, trying to make logos and banners.&lt;/p&gt;

&lt;p&gt;At the end of the day, Sora saved me.&lt;br&gt;
I actually liked the logo I made. Of course, a professional designer could’ve done way better—but given my current skills, it felt like a solid win. (Big thanks to Sora ❤️)&lt;/p&gt;

&lt;p&gt;Go check out the landing page—I promise you’ll get a decent sense of what’s coming.&lt;/p&gt;

&lt;p&gt;I’ll share everything in detail in my next blog (dropping in the next 2-3 days). So stay tuned!&lt;/p&gt;

&lt;p&gt;Abhay Raj, signing out&lt;/p&gt;

&lt;p&gt;📅 June 12, 2025&lt;/p&gt;

&lt;p&gt;P.S.&lt;br&gt;
I just checked my previous blog where I promised to write about history.pushState. I’m really sorry for the delay. I haven’t forgotten—I’ll cover it properly in the next post. It’s gonna be a long one, I can feel it. :)&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Claude Sonnet 4 And The Future of Junior Devs - Day 3 Log</title>
      <dc:creator>Abhay Raj</dc:creator>
      <pubDate>Tue, 03 Jun 2025 18:42:37 +0000</pubDate>
      <link>https://dev.to/abhayrsr/claude-sonnet-4-and-the-future-of-junior-devs-day-log-3-457l</link>
      <guid>https://dev.to/abhayrsr/claude-sonnet-4-and-the-future-of-junior-devs-day-log-3-457l</guid>
      <description>&lt;p&gt;&lt;em&gt;Sonnet 4 — A Thin Thread Holding a Sword Over Our Heads&lt;/em&gt;&lt;br&gt;
I think it’s been more than a week since Anthropic launched Sonnet 4, and today, I got to experience its superpowers. It works like a junior dev — but on steroids.&lt;/p&gt;

&lt;p&gt;All thanks to my cousin who made me use Sonnet 4. Later, I decided to cut open my gut.&lt;/p&gt;

&lt;p&gt;After watching a couple of videos and seeing how it handles huge codebases, it made me wonder about the future of devs, especially junior devs. But before I start my rant of the day, I want to give you a quick overview of a conversation I had over 10 months ago with a Senior Software Engineer working at a very good XYZ company.&lt;/p&gt;

&lt;p&gt;At that point in time, I was looking for a job as a junior dev. But getting no response on my resume and having little to zero personal network in the tech industry, I had no option other than to build a network myself.&lt;/p&gt;

&lt;p&gt;And guess where I went to do that? The almighty platform that's worse than Lord Facebook — a place you can’t stand but at the same time can’t leave.&lt;/p&gt;

&lt;p&gt;It’s LORD LINKEDIN.&lt;/p&gt;

&lt;p&gt;I had made around 700 connections, but personally, I knew only 3 out of 700 people. Which is quite good… right?&lt;/p&gt;

&lt;p&gt;There I met this guy — a senior engineer. He eats, drinks, and sleeps tech. At that point in my life, he advised me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“DON’T COME INTO TECH. YOU’VE CHOSEN THE WRONG INDUSTRY TO START YOUR CAREER. COMPANIES ARE RELUCTANT TO HIRE JUNIOR DEVS AT THE MOMENT BECAUSE OF SATURATION AND AI. COMPANIES ARE TAKING A BET ON EXPERIENCED DEVS — DEVS WHO KNOW HOW TO USE AI WELL AND GET AWAY WITH THE WORK OF JUNIOR DEVS. DON’T INVEST MORE THAN 6 MONTHS TO FIND A JOB. IF YOU FIND ONE... GOOD. IF NOT 🖕”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And I, being a good listener, took his advice seriously. I stopped looking for a job 3 months ago and started freelancing 🙃&lt;/p&gt;


&lt;h2&gt;
  
  
  The Rant
&lt;/h2&gt;

&lt;p&gt;After watching Sonnet 4 in action today, I felt he was right. But my bruised ego doesn’t want me to stop. Even if I want to leave tech... I can’t. I don’t know what else I could monetize — except maybe being a mechanic at a repair shop. (I love working with cars and bikes.)&lt;/p&gt;

&lt;p&gt;So to outperform this Sonnet 4, I went back and asked GPT, “Your cousin is trying to steal the bread from my plate. How can I not let him do this?”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You're asking one of the realest and most relevant questions right now. AI like Sonnet 4, GPT-4, and Claude is shaking up software development big time — and it will impact how jobs, freelancing, and learning to code evolve in the coming years.&lt;/p&gt;

&lt;p&gt;Let’s break it down rationally — not fearfully:&lt;/p&gt;

&lt;p&gt;⚠️ Yes, AI can write &amp;amp; fix code fast. So what's the point of coding then?&lt;/p&gt;

&lt;p&gt;Here’s the truth:&lt;/p&gt;

&lt;p&gt;🔥 AI is not killing coding — it's changing the role of developers:&lt;br&gt;
You're no longer just a coder. You're now a problem solver, a system architect, and a creative builder.&lt;/p&gt;

&lt;p&gt;AI can do the “typing” part, but not the thinking (yet). You still need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Systems thinking&lt;/li&gt;
&lt;li&gt;Product sense&lt;/li&gt;
&lt;li&gt;Debugging + design skills&lt;/li&gt;
&lt;li&gt;Business logic&lt;/li&gt;
&lt;li&gt;Real-world implementation decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧭 &lt;strong&gt;So what should you do now?&lt;/strong&gt;&lt;br&gt;
✅ &lt;strong&gt;1. Learn to code — but don't stop at syntax&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn how systems work, not just how to build "To-Do Apps"&lt;/li&gt;
&lt;li&gt;Focus on architecture, scalability, and real projects&lt;/li&gt;
&lt;li&gt;Use AI tools with you (not against you) — treat them as teammates, not enemies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;2. Build a unique developer edge&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI + Human = 100x Dev — &lt;em&gt;people who know how to use AI to build fast and smart will win&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Learn to:&lt;/li&gt;
&lt;li&gt;Prompt like a pro&lt;/li&gt;
&lt;li&gt;Use AI for debugging, scaffolding, testing&lt;/li&gt;
&lt;li&gt;Review and understand AI’s output (because it's not always right)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💼 &lt;strong&gt;What about freelancing?&lt;/strong&gt;&lt;br&gt;
🤖 AI is flooding low-skill freelancing markets&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple CRUD apps, landing pages, basic bug fixes? AI can do that.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But clients still need humans who can:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Understand their business logic&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Talk to them&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Design systems and solve unexpected problems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deliver quality and maintainability&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;You must move up the ladder:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t just be a “doer”&lt;/li&gt;
&lt;li&gt;Be a consultant, solution provider, AI-native developer&lt;/li&gt;
&lt;li&gt;Build a strong niche: e.g., "I help e-commerce brands optimize their backend using serverless and AI tools”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔮** Future-proof Roles (2025–2030):**&lt;br&gt;
&lt;strong&gt;Role&lt;/strong&gt; --&amp;gt; &lt;strong&gt;Why it survives&lt;/strong&gt;&lt;br&gt;
AI-Augmented Developer --&amp;gt; Fastest builders, best at debugging &amp;amp; integration&lt;br&gt;
System Designer / Software Architect --&amp;gt; Thinkers behind the scenes&lt;br&gt;
DevOps + Infra + Cloud Engineers --&amp;gt; AI still sucks at networking, infra, &amp;amp; CI/CD&lt;br&gt;
Freelancers with niche &amp;amp; branding --&amp;gt; They build trust + provide value, not just code&lt;br&gt;
Product engineers (with UX + business sense) --&amp;gt; Who build with impact, not just features&lt;br&gt;
🧠 &lt;strong&gt;Bottom line:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coding is still worth it — but only if you go beyond surface-level&lt;/li&gt;
&lt;li&gt;Use AI like a jetpack — not a replacement&lt;/li&gt;
&lt;li&gt;Freelancing is viable — if you build your brand, niche, and deliver beyond just code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you fear AI, you'll lose. If you embrace AI, you'll outpace 95% of devs.&lt;/p&gt;

&lt;p&gt;The way it has answered my query, we have to have&lt;br&gt;
✅Systems thinking - Role more inclined towards an architect &lt;br&gt;
✅Product sense - Role inclined towards a product manager &lt;br&gt;
✅Debugging + design skills - Role of a dev (Thank God!!)&lt;br&gt;
✅Business logic - Role similar to a business analyst &lt;br&gt;
✅Real-world implementation decisions - can be right only if you understand your target audience well (I feel)&lt;/p&gt;

&lt;p&gt;So, mastering your craft as a dev is one thing, but having a broad overview of all the other things mentioned above seems to be the only way to kickstart our career as developers.&lt;/p&gt;

&lt;p&gt;Now, this is not a senior dev giving advice.&lt;br&gt;
This advice is given by one AI to face the problems created by another AI.&lt;/p&gt;

&lt;p&gt;How much of it is true? I don’t know.&lt;/p&gt;

&lt;p&gt;A sword is hanging by a thread over our heads, and we have no other option but to embrace these changes.&lt;/p&gt;

&lt;p&gt;What could be the best direction to move towards?&lt;/p&gt;

&lt;p&gt;Well, if you’re a senior dev reading this article with years of experience, your 2 cents (please comment below) could help people like us. (Yes, me included.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Progress&lt;/strong&gt;&lt;br&gt;
I’ve made a bit of progress with the course, but mostly my time was spent refactoring the previous code.&lt;/p&gt;

&lt;p&gt;I did nested routing and linked different components through routes. It made the code look more scalable and structured. I also set up a small backend on Node.js to store real-time data entered on the client side.&lt;/p&gt;

&lt;p&gt;Also, the headphones are detected by the system now. The PipeWire installation has done its work.&lt;/p&gt;

&lt;p&gt;That was all I did today, and before leaving, I’ll quench your thirst for some tech nectar. You guys deserve that for staying so long with this article.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you guys know why we use &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt; from react-router-dom as anchor tag &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; can do the same work as &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On the surface, it looks like both &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt; from react-router-dom do the same thing—navigate to another page. But they work very differently in a React application, especially in a &lt;strong&gt;Single Page Application (SPA)&lt;/strong&gt;. Here's the key difference:&lt;/p&gt;

&lt;p&gt;When you use a plain HTML &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;a href="/about"&amp;gt;About&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clicking it causes a full page reload. This:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reloads the entire app&lt;/li&gt;
&lt;li&gt;Loses app state (e.g., scroll position, form data, variables)&lt;/li&gt;
&lt;li&gt;Is slower because the browser reloads HTML, CSS, JS, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Advantage of &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt; from react-router-dom&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Link } from 'react-router-dom';

&amp;lt;Link to="/about"&amp;gt;About&amp;lt;/Link&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you use &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It prevents full page reload&lt;/li&gt;
&lt;li&gt;It updates the URL using history.pushState behind the scenes&lt;/li&gt;
&lt;li&gt;It allows React Router to handle the routing internally&lt;/li&gt;
&lt;li&gt;The current state of the app stays intact&lt;/li&gt;
&lt;li&gt;It makes the app feel faster and more responsive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now what is this history.pushState?&lt;/p&gt;

&lt;p&gt;It’s your homework for today. I’ll write about it tomorrow — so stay tuned!&lt;/p&gt;

&lt;p&gt;My fingers are numb now (today’s workout was insane).&lt;/p&gt;

&lt;p&gt;Abhay Raj, signing out&lt;br&gt;
📅 June 3, 2025&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🔥 Fire Burns The Ignorant - Featuring Arch - Day 2 Log</title>
      <dc:creator>Abhay Raj</dc:creator>
      <pubDate>Tue, 03 Jun 2025 16:07:36 +0000</pubDate>
      <link>https://dev.to/abhayrsr/fire-burns-the-ignorant-featuring-arch-day-2-log-186a</link>
      <guid>https://dev.to/abhayrsr/fire-burns-the-ignorant-featuring-arch-day-2-log-186a</guid>
      <description>&lt;p&gt;&lt;em&gt;Neovim and Arch demand sacrifice - your sanity, preferably.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I was kind of regretting switching from Ubuntu to Arch. ALSA (Advanced Linux Sound Architecture) is the main culprit. Falling head over heels for Arch’s slick terminal might’ve been a bit impulsive.&lt;/p&gt;

&lt;p&gt;ALSA (Advanced Linux Sound Architecture) really burned my time. Every time I connect my headphones, Arch doesn’t care — I have to open alsamixer manually to adjust audio.&lt;/p&gt;

&lt;p&gt;I even installed PipeWire to auto-detect earphones and switch audio output, but it didn’t work as expected. After about an hour of searching and trying, I gave up and decided to properly read about ALSA.&lt;/p&gt;

&lt;p&gt;With great power comes great responsibility. Arch gives us deep control over our OS, but I guess I’m not responsible enough (yet) to wield that power in a civilized way.&lt;/p&gt;

&lt;p&gt;I guess it’s time to read all my fundamental rights, fundamental duties and amendments that I can make from Arch wiki.&lt;/p&gt;

&lt;p&gt;Btw I was joking. I am not regretting anything, I am actually enjoying the learning curve.&lt;/p&gt;

&lt;p&gt;But before moving ahead with today’s blog, let’s discuss the solution of the problem statement I gave you yesterday&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Post from './Post'
import NewPost from './NewPost'
import classes from './PostList.module.css'
import {useState} from 'react'
import Modal from './Modal'

export default function PostList({isPosting, onStopPosting}){
  const [enterBody, setEnterBody] = useState('');
  const [enterName, setEnterName] = useState('');

  function enterBodyHandler(){
    setEnterBody(event.target.value);
  }

  function enterNameHandler(){
    setEnterName(event.target.value)
  }

  return(
    &amp;lt;&amp;gt;
      {isPosting ?   
      &amp;lt;Modal onClose={onStopPosting}&amp;gt;
       &amp;lt;NewPost onChangeBodyHandler={enterBodyHandler} onChangeNameHandler={enterNameHandler}/&amp;gt;
      &amp;lt;/Modal&amp;gt; : null 
      }

      &amp;lt;ul className={classes.posts}&amp;gt;
        &amp;lt;Post author={enterName} body={enterBody}/&amp;gt;
        &amp;lt;Post author="Manuel" body="Check out the full course!" /&amp;gt;
      &amp;lt;/ul&amp;gt;
    &amp;lt;/&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your task was to figure out whether the function enterBodyHandler() and function enterNameHandler() will work correctly or throw error?&lt;/p&gt;

&lt;p&gt;You might have come up with the logic that it will throw an error because event is not passed as parameter in the enterBodyHandler() and enterNameHandler(). And that is what I thought initially. But when I ran the functions without event being passed to the functions, it worked properly. NO ERRORS.&lt;/p&gt;

&lt;p&gt;Browser behaviour peed over my smarty pants 🤢&lt;/p&gt;

&lt;p&gt;In older browsers, or in non-strict mode, the event object is available as a global variable (window.event). So even if you don’t pass event as a parameter, event.target.value might still work.&lt;/p&gt;

&lt;p&gt;However, React uses strict mode in development — and does not rely on or expose global event. So the fact that this worked might indicate:&lt;/p&gt;

&lt;p&gt;You’re not running React in strict mode.&lt;br&gt;
Your browser environment temporarily supported window.event.&lt;/p&gt;

&lt;p&gt;If it does not, your code would fail with a ReferenceError: event is not defined error.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It is a best practice to always pass the event object as a parameter to your handler, because React does not rely on the global event object.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, always declare event as a parameter in your event handlers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function enterBodyHandler(event) {
  setEnterBody(event.target.value);
}

function enterNameHandler(event) {
  setEnterName(event.target.value);
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Talking about my progress
&lt;/h2&gt;

&lt;p&gt;I have revised fifty percent of React so far. The course by Maximilan Schwarzmüller is quite good. I would have tagged him here but he is not on Hashnode. Poor guy!!&lt;/p&gt;

&lt;p&gt;I feel the pace with which I am moving ahead with the course work is a bit slow. These days I am trying to shift to a more Keyboard focused workflow and saying no to he mouse pad. All this hardwork for getting blazingly fast with all my workflows. Neovim + Arch are devouring my time - But that’s how it goes. right??&lt;/p&gt;

&lt;p&gt;If you’ve have stayed with me for this long, then I feel you’re interested to read more. God damn it!! I have to keep using these fingers quite for some time to squirt the hell out of your nerdy brains.&lt;/p&gt;

&lt;p&gt;Do you guys know why do we use useEffect to fetch data, but call fetch() directly in event handlers?&lt;/p&gt;

&lt;p&gt;When fetching the data you want to trigger the API calls only at certain times like after the component mounts or when certain dependencies change, not on every render.&lt;/p&gt;

&lt;p&gt;If you use data fetch in a unconventional way as given below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useState } from 'react';

function MyComponent() {
  const [data, setData] = useState(null);

  if (!data) {
    fetch('https://api.example.com/data')
      .then(response =&amp;gt; response.json())
      .then(json =&amp;gt; setData(json))
      .catch(error =&amp;gt; console.error(error));
  }

  return &amp;lt;div&amp;gt;{data ? data.message : 'Loading...'}&amp;lt;/div&amp;gt;;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This might lead to an infinite loop of fetches and renders as React component can re-render many times due to state changes, props updates, or other filthy reasons.&lt;/p&gt;

&lt;p&gt;By putting the data fetch inside useEffect you ensure the side effects like data fetch should run-typically only when the component first mounts, or when certain dependencies change.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useState, useEffect } from 'react';

function MyComponent() {
  const [data, setData] = useState(null);

  useEffect(() =&amp;gt; {
    fetch('https://api.example.com/data')
      .then((response) =&amp;gt; response.json())
      .then((json) =&amp;gt; setData(json))
      .catch((error) =&amp;gt; console.error(error));
  }, []);

  return &amp;lt;div&amp;gt;{data ? data.message : 'Loading...'}&amp;lt;/div&amp;gt;;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save yourself from unwanted infinite loops and mental breakdowns.&lt;/p&gt;

&lt;p&gt;If you made it this far, I hope I become as nerdy as you and keep pushing out good quality and quantity of technical content.&lt;/p&gt;

&lt;p&gt;This is enough for your brain today.&lt;/p&gt;

&lt;p&gt;Abhay Raj, signing out&lt;br&gt;
📅 June 2, 2025&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>neovim</category>
      <category>archlinux</category>
    </item>
    <item>
      <title>🏋️ Lifted some states up!! - Day 1 Log</title>
      <dc:creator>Abhay Raj</dc:creator>
      <pubDate>Tue, 03 Jun 2025 06:55:11 +0000</pubDate>
      <link>https://dev.to/abhayrsr/lifted-some-states-up-day-1-log-4djg</link>
      <guid>https://dev.to/abhayrsr/lifted-some-states-up-day-1-log-4djg</guid>
      <description>&lt;p&gt;Well, I forgot to create a GitHub repo for my personalized learning journey. I should definitely create one by the end of the day.&lt;/p&gt;

&lt;p&gt;I’m excited to write today about my progress. But before that — Palash Shrote , thanks for reading my rant. I wasn’t expecting anyone to read it (especially on Day 1), but you made my day and lit a little fire under my butt to keep going. That’s why I’m here writing my Day 1 log at 2:19 AM. Really, thank you.&lt;/p&gt;

&lt;p&gt;Honestly, the day was quite hectic. Living with your parents does come at a cost. That cost? I pay it by being the “Chotu” of the family. And seeing my discipline, dedication, and devotion, my family has promoted me to “Chotu-cum-Driver.” I take them anywhere, anytime — wherever they want to go. The service is 24×7×365. 👍&lt;/p&gt;

&lt;p&gt;Meanwhile, today I tried building small features where I could use state management heavily in React.&lt;/p&gt;

&lt;p&gt;States do mess with your head when they grow in number. I find it a little tricky to pass them through props when an application involves multiple components.&lt;/p&gt;

&lt;p&gt;Right now, I’m trying to build a simple blogging app where we can add new posts. Not much has been done so far — just using states to manage different components, with props acting as a linker between them.&lt;/p&gt;

&lt;p&gt;All of this is my revision set for React, as I haven’t coded seriously for a long time. I did a client project in February, but I still felt the need to revise everything before jumping back in. From mid-Feb till yesterday, I hadn’t touched my coding console. So, I decided to start fresh — and strong.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No matter how many times you revise or redo something, you always learn something new.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;React has done a huge favor for the developer community by wrapping lengthy vanilla JS scripts into hooks, props, and whatnot.&lt;br&gt;
If you’ve got a good command over vanilla JS, working with React becomes fun.&lt;/p&gt;


&lt;h2&gt;
  
  
  A simple example to demonstrate:
&lt;/h2&gt;

&lt;p&gt;Let’s render a list of items and handle click events in both vanilla JS and React.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Vanilla JS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Assume you have a &amp;lt;div id="app"&amp;gt;&amp;lt;/div&amp;gt; in your HTML

const app = document.getElementById('app');

// Data
const items = ['Apple', 'Banana', 'Cherry'];

// Render list
const list = document.createElement('ul');
items.forEach(item =&amp;gt; {
  const li = document.createElement('li');
  li.textContent = item;
  li.addEventListener('click', () =&amp;gt; {
    alert(`You clicked: ${item}`);
  });
  list.appendChild(li);
});
app.appendChild(list);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. React&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import { createRoot } from 'react-dom/client';

const items = ['Apple', 'Banana', 'Cherry'];

function App() {
  return (
    &amp;lt;ul&amp;gt;
      {items.map((item, index) =&amp;gt; (
        &amp;lt;li key={index} onClick={() =&amp;gt; alert(`You clicked: ${item}`)}&amp;gt;
          {item}
        &amp;lt;/li&amp;gt;
      ))}
    &amp;lt;/ul&amp;gt;
  );
}

const root = createRoot(document.getElementById('app'));
root.render(&amp;lt;App /&amp;gt;);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Which code do you find more readable?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In vanilla JS, event listeners are added individually to each element, while React makes event handling concise and inline.&lt;/p&gt;

&lt;p&gt;Now, predict the output of the coding problem below. ok?? Cool.&lt;br&gt;
Let’s make some use of your grey matter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Post from './Post'
import NewPost from './NewPost'
import classes from './PostList.module.css'
import {useState} from 'react'
import Modal from './Modal'

export default function PostList({isPosting, onStopPosting}){
  const [enterBody, setEnterBody] = useState('');
  const [enterName, setEnterName] = useState('');

  function enterBodyHandler(){
    setEnterBody(event.target.value);
  }

  function enterNameHandler(){
    setEnterName(event.target.value)
  }

  return(
    &amp;lt;&amp;gt;
      {isPosting ?   
      &amp;lt;Modal onClose={onStopPosting}&amp;gt;
       &amp;lt;NewPost onChangeBodyHandler={enterBodyHandler} onChangeNameHandler={enterNameHandler}/&amp;gt;
      &amp;lt;/Modal&amp;gt; : null 
      }

      &amp;lt;ul className={classes.posts}&amp;gt;
        &amp;lt;Post author={enterName} body={enterBody}/&amp;gt;
        &amp;lt;Post author="Manuel" body="Check out the full course!" /&amp;gt;
      &amp;lt;/ul&amp;gt;
    &amp;lt;/&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your task is to figure out whether the &lt;strong&gt;function enterBodyHandler()&lt;/strong&gt; and &lt;strong&gt;function enterNameHandler()&lt;/strong&gt; will work correctly or throw error?&lt;/p&gt;

&lt;p&gt;Try doing it yourself and do come up with good explanation.&lt;/p&gt;

&lt;p&gt;Earlier, I was thinking of writing the explanation in the same post. But my smarty pants self convinced me to wait and post the explanation in the tomorrow’s blog. So, stay tuned.&lt;/p&gt;

&lt;p&gt;Abhay Raj, signing out.&lt;br&gt;
📅 June 1, 2025&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🚀 Building My Freelance Journey From Scratch - Day 0 Log</title>
      <dc:creator>Abhay Raj</dc:creator>
      <pubDate>Fri, 30 May 2025 21:53:29 +0000</pubDate>
      <link>https://dev.to/abhayrsr/building-my-freelance-journey-from-scratch-day-0-log-4f00</link>
      <guid>https://dev.to/abhayrsr/building-my-freelance-journey-from-scratch-day-0-log-4f00</guid>
      <description>&lt;h2&gt;
  
  
  Who Am I?
&lt;/h2&gt;

&lt;p&gt;Hi, I’m Abhay Raj.&lt;/p&gt;

&lt;p&gt;I come from a hilly state in India — Himachal Pradesh. Most foreigners who visit India know about this place. For many Israelis, this is the state they look forward to relaxing in after completing their intense military service.&lt;/p&gt;

&lt;p&gt;Even locals don’t usually want to leave. People here often find joy working close to their hometowns.&lt;br&gt;
But that doesn’t hold true for me.&lt;/p&gt;

&lt;p&gt;I’m an explorer at heart. I value experiences over comfort.&lt;/p&gt;

&lt;p&gt;To feed this inner explorer and gather countless stories (so my grandchildren don’t get bored of me), I want to live life in its rawest, most adventurous form. But over the past 3–4 years, I haven’t done justice to myself. This has led to deep restlessness and a sense of despair.&lt;/p&gt;

&lt;p&gt;Enough is enough.&lt;/p&gt;

&lt;p&gt;I’m turning 27 in three months — physically fit, mentally sharp, and hungry to solve complex development problems. I’ve decided to own my time and my place of work, because life is short and unpredictable.&lt;/p&gt;

&lt;p&gt;Yes, I’m taking a huge risk. I left something important in between to pursue this path.&lt;br&gt;
What was that?&lt;br&gt;
A story for another day.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Am I Gonna Do?
&lt;/h2&gt;

&lt;p&gt;The rant before was necessary to lay the foundation. Thanks for reading.&lt;/p&gt;

&lt;p&gt;Now, what’s next?&lt;/p&gt;

&lt;p&gt;To own my time and location, I believe remote freelance software development is the right path. I know it’s one of the hardest and riskiest paths in software — I’m not fooled by the glamorous marketing videos.&lt;/p&gt;

&lt;p&gt;But I’m skilled and mature, I understand real-world problems, and I know how to build solutions.&lt;br&gt;
So, I’m taking the plunge into freelance development.&lt;/p&gt;

&lt;p&gt;This is one way I can make enough money to live a meaningful life.&lt;/p&gt;

&lt;p&gt;Here on Hashnode, I’ll document everything — from starting at zero to building a solid client base that funds my wildest dreams.&lt;br&gt;
I’m already in my late 20s and haven’t done much to chase my dreams yet.&lt;br&gt;
That’s what’s lighting the fire under me.&lt;/p&gt;

&lt;p&gt;I’m writing this with the hope that someday, when I achieve what I set out to do, people like me — especially burnt-out devs sick of micro-managed jobs — can look back and realize:&lt;br&gt;
“Yes, it’s possible.”&lt;/p&gt;

&lt;p&gt;I’ll share the full journey — my mindset, my learning path, and my client acquisition struggles. It’ll be raw, real, and unfiltered.&lt;/p&gt;

&lt;p&gt;I’m not worried about how the market is treating developers right now (though I do worry about AI!).&lt;br&gt;
What matters is:&lt;br&gt;
I’m hell-bent on becoming a solo software developer who owns their time and freedom.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Did on Day 0?
&lt;/h2&gt;

&lt;p&gt;I bought a course on Udemy:&lt;br&gt;
“Next.js 15 &amp;amp; React - The Complete Guide” by Maximilian Schwarzmüller.&lt;/p&gt;

&lt;p&gt;I completed about 1 hour of content today. I wanted to brush up on React before diving into Next.js for an upcoming project. Believe me, I have some solid project ideas that I’ll be building over the next 1–2 months. So, stay tuned!&lt;/p&gt;

&lt;p&gt;My goal: Finish the course in a week. I already have decent experience with TypeScript, React, Vanilla JS, MySQL, and Node.js. I know C as well. So fingers crossed 🤞 I should be able to wrap up Next.js in a week.&lt;/p&gt;

&lt;p&gt;I also set up my official accounts on:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/abhayrsr76" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/abhay-raj-01ab7a278/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.upwork.com/freelancers/~014dd8c602c0911811?mp_source=share" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/abhayrsr" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://abhayrsr.hashnode.dev/building-my-freelance-journey-from-scratch-day-0-log" rel="noopener noreferrer"&gt;Hashnode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/abhayrsr"&gt;Dev&lt;/a&gt;&lt;br&gt;
Surprisingly, the hardest part was not setting up the accounts — it was finding a good display picture.&lt;/p&gt;

&lt;p&gt;The one I was using was 4 years old. And I’m not a fan of clicking photos. So… I paid a cameraman ₹10 to click a high-res picture of me 😅.&lt;br&gt;
In 2025, I’m paying for pictures. Odd, right?&lt;/p&gt;

&lt;p&gt;Then I had to edit the background, contrast, all that jazz.&lt;br&gt;
Yes, yes — it’s the same white-background picture on Hashnode.&lt;/p&gt;

&lt;p&gt;Anyway, it’s work. I’m being professional.&lt;/p&gt;

&lt;p&gt;Oh! And my portfolio is live too — &lt;a href="https://portfolio-kappa-nine-65.vercel.app/terminal" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;br&gt;
Inspired by my first love: Linux (Ubuntu).&lt;br&gt;
(Although I broke up with Ubuntu recently and switched to Arch, because… it's hot 😎.)&lt;/p&gt;

&lt;p&gt;I might change my portfolio in some days but till then I will make use this one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Note
&lt;/h2&gt;

&lt;p&gt;It’s 1:35 AM as I’m writing this.&lt;/p&gt;

&lt;p&gt;Before I sleep, I’ll be watching some tutorials for another 2–3 hours.&lt;br&gt;
I need to push beyond my limits. Time is short. Stakes are high.&lt;/p&gt;

&lt;p&gt;I’m doing this not just for myself — but for my parents too.&lt;br&gt;
I want to give them the life they deserve.&lt;/p&gt;

&lt;p&gt;Abhay Raj, signing out.&lt;br&gt;
📅 May 31, 2025&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>javascript</category>
      <category>freelance</category>
    </item>
    <item>
      <title>Component in React</title>
      <dc:creator>Abhay Raj</dc:creator>
      <pubDate>Fri, 03 May 2024 10:52:21 +0000</pubDate>
      <link>https://dev.to/abhayrsr/component-in-react-5284</link>
      <guid>https://dev.to/abhayrsr/component-in-react-5284</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvcv222h5dnkcrvl2q7l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvcv222h5dnkcrvl2q7l.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to React Components
&lt;/h2&gt;

&lt;p&gt;Let's say we are designing a navigation bar for a web page in HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;nav&amp;gt;
  &amp;lt;ul&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Services&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
 &amp;lt;/nav&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This nav bar will be part of every web page listed on a website.&lt;/p&gt;

&lt;p&gt;This navigation bar would typically be replicated across every page of a website, leading to &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;time consumption&lt;/li&gt;
&lt;li&gt;Inefficiency&lt;/li&gt;
&lt;li&gt;Repetition&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, to resolve these issues we use React.&lt;/p&gt;

&lt;p&gt;React is a JavaScript library used for building reusable user interface components in web applications.&lt;/p&gt;

&lt;p&gt;If we talk about creating our Nav Bar in React then it will wrap all our nav bar markup, CSS, and JavaScript into a simple component that can be known as a nav bar component and represented as&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;NavBar /&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Under the hood, it still uses tags like &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;.&lt;br&gt;
However, it abstracts away the implementation details, allowing for easier reuse and maintenance.&lt;/p&gt;

&lt;p&gt;This &lt;code&gt;&amp;lt;NavBar /&amp;gt;&lt;/code&gt; component can be reused on multiple pages of a web app, speeding up the development process.&lt;/p&gt;

&lt;p&gt;In React, components like &lt;code&gt;NavBar&lt;/code&gt; serve as self-contained units of code, facilitating modularization and enhancing code maintainability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Defining a component&lt;/strong&gt;&lt;br&gt;
As per the &lt;a href="https://react.dev/learn/your-first-component" rel="noopener noreferrer"&gt;docs&lt;/a&gt;, a React component is a JavaScript function that you can sprinkle with markup except &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The name always begins with an uppercase&lt;/li&gt;
&lt;li&gt;They return JSX markup&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;JSX is nothing but a syntax extension for JavaScript that allows you to write HTML-like code within JavaScript.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Take a look at the example below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default function NavBar(){
 //Return JSX markup
 return(
  &amp;lt;nav&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Services&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/nav&amp;gt;
)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;How to use a component&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As we have defined our NavBar component, we can use it inside other components. &lt;/p&gt;

&lt;p&gt;Let's say we are creating a home page of the web app where we are using the &lt;code&gt;&amp;lt;NavBar /&amp;gt;&lt;/code&gt; component inside our home page component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function NavBar(){
return(
  &amp;lt;nav&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Services&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/nav&amp;gt;
)
}

export default function HomePage(){
 return (
  &amp;lt;div className='HomeContainer'&amp;gt;
     &amp;lt;NavBar /&amp;gt;
     &amp;lt;h1&amp;gt;Home Page&amp;lt;/h1&amp;gt;
     &amp;lt;ol&amp;gt;
       &amp;lt;li&amp;gt;component 1&amp;lt;/li&amp;gt;
       &amp;lt;li&amp;gt;component 2&amp;lt;/li&amp;gt;
       &amp;lt;li&amp;gt;component 3&amp;lt;/li&amp;gt;
     &amp;lt;/ol&amp;gt;
  &amp;lt;/div&amp;gt;
)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A question might have arisen in your mind while going through this blog that &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How does the browser differentiate between an HTML tag and a component?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer lies in their casing i.e;&lt;br&gt;
if a markup starts with a lowercase like &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; then the browser interprets it as an HTML tag whereas if any markup starts with an uppercase like &lt;code&gt;&amp;lt;NavBar /&amp;gt;&lt;/code&gt; then it is interpreted as a component.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
