<?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: Mohammad Shahzeb Alam</title>
    <description>The latest articles on DEV Community by Mohammad Shahzeb Alam (@md_shahzebalam).</description>
    <link>https://dev.to/md_shahzebalam</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3275723%2F48dfefb7-dcfb-429e-8fb6-e582f61e4b41.jpg</url>
      <title>DEV Community: Mohammad Shahzeb Alam</title>
      <link>https://dev.to/md_shahzebalam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/md_shahzebalam"/>
    <language>en</language>
    <item>
      <title>From useEffect to TanStack Query: What Changed My Perspective</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Wed, 22 Jul 2026 14:48:29 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/from-useeffect-to-tanstack-query-what-changed-my-perspective-4hjj</link>
      <guid>https://dev.to/md_shahzebalam/from-useeffect-to-tanstack-query-what-changed-my-perspective-4hjj</guid>
      <description>&lt;p&gt;When I first started learning data fetching in React, the dependency array in &lt;code&gt;useEffect&lt;/code&gt; confused me more than the fetch request itself.&lt;/p&gt;

&lt;p&gt;But after building a Meme Generator, it finally started making sense.&lt;/p&gt;

&lt;p&gt;A few weeks later, I built another project using TanStack Query because I wanted to see how a different approach to server state felt in practice.&lt;/p&gt;

&lt;p&gt;I wasn't trying to prove that one approach was better than the other. I simply wanted to compare what it actually felt like to build with both.&lt;/p&gt;

&lt;p&gt;What surprised me wasn't just that I wrote less code—it was how differently I started thinking about data fetching.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. The Experiment
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Project 1 — Meme Generator
&lt;/h2&gt;

&lt;p&gt;My first project was a simple Meme Generator. The idea was straightforward: fetch a list of meme templates from an API, display a random meme, and let users add their own top and bottom text.&lt;/p&gt;

&lt;p&gt;To fetch the meme data, I used React's &lt;code&gt;useEffect&lt;/code&gt; hook. It was my first experience working with APIs in React, and it helped me understand how to fetch data after a component renders and store it in state.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://api.imgflip.com/get_memes&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setAllMemes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;memes&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Besides data fetching, this project also introduced me to controlled components. As users typed into the input fields, the text updated on the meme image in real time, which was one of my favorite parts of building the project.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb4xamq7svpkfabovbjex.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb4xamq7svpkfabovbjex.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Project 2 — Movie Search App
&lt;/h2&gt;

&lt;p&gt;After building my Meme Generator with &lt;code&gt;useEffect&lt;/code&gt;, I wanted another project where I could compare a different approach to data fetching. This time, I built a Movie Search app using &lt;strong&gt;TanStack Query&lt;/strong&gt; and &lt;strong&gt;React Router&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The app lets users search for movies, display the results, and navigate to a separate page for detailed information about each movie. It felt like a good project because it involved fetching data, searching, and working with dynamic routes—all things I'd likely use in real applications.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuu1kddfzq71pdze8u68s.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuu1kddfzq71pdze8u68s.png" alt=" " width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of focusing on how TanStack Query worked internally, I wanted to see how it felt to build with it compared to &lt;code&gt;useEffect&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;movies&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;isLoading&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;isError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useQuery&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;queryKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;movies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;searchTerm&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;queryFn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fetchMovies&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One thing I also wanted to explore was how TanStack Query worked alongside React Router. After searching for a movie, users can open a dedicated details page for that movie, making the app feel more like a real-world project.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fir2w0y8ob0mnaxntuxns.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fir2w0y8ob0mnaxntuxns.png" alt=" " width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point, I had built one project with &lt;code&gt;useEffect&lt;/code&gt; and another with TanStack Query. The real differences didn't become obvious until I started comparing the development experience.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. What Actually Surprised Me
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Discovery #1 — Less Boilerplate, More Focus
&lt;/h2&gt;

&lt;p&gt;The first thing I noticed was how much repetitive code disappeared.&lt;/p&gt;

&lt;p&gt;With &lt;code&gt;useEffect&lt;/code&gt;, I had to manage loading states, error states, and the fetched data myself. In my Movie Search app, TanStack Query handled most of that for me. Instead of writing the same boilerplate every time I fetched data, I could focus on building the feature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;movies&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;isLoading&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;isError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useQuery&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;queryKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;movies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;searchTerm&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;queryFn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fetchMovies&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I didn't realize how much time I was spending writing the same patterns until I stopped having to write them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discovery #2 — Caching Finally Clicked
&lt;/h2&gt;

&lt;p&gt;Caching was the feature that surprised me the most.&lt;/p&gt;

&lt;p&gt;At first, I had heard people talk about caching, but I didn't really understand why it mattered.&lt;/p&gt;

&lt;p&gt;While testing the app, I noticed that data I'd already fetched appeared instantly when I visited it again.&lt;/p&gt;

&lt;p&gt;That was the moment caching finally clicked for me.&lt;/p&gt;

&lt;p&gt;Instead of making another network request every time, TanStack Query reused the data it already had.&lt;/p&gt;

&lt;p&gt;The difference wasn't dramatic in such a small project, but it helped me understand why caching becomes valuable as applications grow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discovery #3 — The Pattern Stayed Consistent
&lt;/h2&gt;

&lt;p&gt;One thing I appreciated was that every data-fetching feature followed the same structure.&lt;/p&gt;

&lt;p&gt;Whether I was fetching a list of movies or the details of a single movie, I used the same &lt;code&gt;useQuery&lt;/code&gt; pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;define a &lt;code&gt;queryKey&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;provide a &lt;code&gt;queryFn&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;access &lt;code&gt;data&lt;/code&gt;, &lt;code&gt;isLoading&lt;/code&gt;, and &lt;code&gt;isError&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once I understood that pattern, adding another API request felt much less intimidating.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. What TanStack Query Didn't Replace
&lt;/h1&gt;

&lt;p&gt;Before using TanStack Query, I expected it to completely change how I fetched data.&lt;/p&gt;

&lt;p&gt;After building the project, I realized that wasn't the case.&lt;/p&gt;

&lt;p&gt;I still needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An API to request data from.&lt;/li&gt;
&lt;li&gt;A function that actually fetches the data (&lt;code&gt;fetch&lt;/code&gt; in my project).&lt;/li&gt;
&lt;li&gt;React fundamentals to build the UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, my &lt;code&gt;fetchMovies&lt;/code&gt; function stayed almost the same:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchMovies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;VITE_OMDB_API_KEY&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s2"&gt;`https://www.omdbapi.com/?apikey=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;amp;s=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;searchTerm&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Search&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;TanStack Query doesn't replace this function. It simply calls it whenever the query needs fresh data.&lt;/p&gt;

&lt;p&gt;What changed was how I managed the server state around that request.&lt;/p&gt;

&lt;p&gt;Instead of writing repetitive code for loading states, error handling, caching, and refetching, I could describe my data requirements with &lt;code&gt;useQuery&lt;/code&gt;, and TanStack Query handled those concerns for me.&lt;/p&gt;

&lt;p&gt;For me, TanStack Query doesn't replace React or the Fetch API. It builds on top of them by removing repetitive server-state management, allowing me to spend more time building the application instead of managing data fetching logic.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. When I'd Still Use &lt;code&gt;useEffect&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;After building this project, I don't think TanStack Query is something I'd use in every React application.&lt;/p&gt;

&lt;p&gt;If I'm building a small application with just one or two API requests, I'd probably stick with &lt;code&gt;useEffect&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For those projects, installing and configuring another library doesn't feel necessary. &lt;code&gt;useEffect&lt;/code&gt; already does the job well, and it keeps the project simple.&lt;/p&gt;

&lt;p&gt;I'd start considering TanStack Query when an application grows and managing server state becomes repetitive. Features like caching, loading states, error handling, and automatic refetching become much more valuable as the project becomes more complex.&lt;/p&gt;

&lt;p&gt;For me, it isn't about replacing &lt;code&gt;useEffect&lt;/code&gt;. It's about choosing the right tool for the size and needs of the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. Looking Back
&lt;/h1&gt;

&lt;p&gt;Building these two projects changed how I think about data fetching in React.&lt;/p&gt;

&lt;p&gt;If I rebuilt my Meme Generator today, I probably wouldn't replace &lt;code&gt;useEffect&lt;/code&gt; with TanStack Query.&lt;/p&gt;

&lt;p&gt;The app only fetches the list of memes once when it loads:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://api.imgflip.com/get_memes&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setAllMemes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;memes&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a simple project like this, &lt;code&gt;useEffect&lt;/code&gt; is straightforward and gets the job done.&lt;/p&gt;

&lt;p&gt;What has changed is how I'd approach larger applications.&lt;/p&gt;

&lt;p&gt;If an app needs multiple API requests, caching, automatic refetching, or better server-state management, I'd seriously consider using TanStack Query.&lt;/p&gt;

&lt;p&gt;Before building these two projects, I thought data fetching in React was mostly about making API requests.&lt;/p&gt;

&lt;p&gt;Now I think it's more about deciding how to manage server state as an application grows.&lt;/p&gt;

&lt;p&gt;This experiment didn't convince me that TanStack Query should replace &lt;code&gt;useEffect&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Instead, it taught me that they solve different problems, and choosing the right one depends on what I'm building.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>reactjsdevelopment</category>
    </item>
    <item>
      <title>What I Learned Integrating AI Into My React App</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Fri, 17 Jul 2026 14:53:28 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/what-i-learned-integrating-ai-into-my-react-app-58pg</link>
      <guid>https://dev.to/md_shahzebalam/what-i-learned-integrating-ai-into-my-react-app-58pg</guid>
      <description>&lt;p&gt;While building Chef Claude, a small React application where users enter the ingredients they have and receive an AI-generated recipe, I started wondering how this would actually work.&lt;/p&gt;

&lt;p&gt;Should I store recipes somewhere in my code? Or use a recipe API?&lt;/p&gt;

&lt;p&gt;Since every user could enter a different combination of ingredients, I couldn't rely on a fixed list of recipes.&lt;/p&gt;

&lt;p&gt;That's when I thought of integrating AI into the app.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Was Building
&lt;/h2&gt;

&lt;p&gt;The flow of Chef Claude was simple.&lt;/p&gt;

&lt;p&gt;Users add ingredients based on what they have available. Every ingredient is stored in state, and after adding at least four ingredients, the "Get a Recipe" button appears.&lt;/p&gt;

&lt;p&gt;When the user clicks the button, the ingredient list is sent to the AI model. The model uses those ingredients to generate a recipe and sends the response back.&lt;/p&gt;

&lt;p&gt;But the response comes back as Markdown.&lt;/p&gt;

&lt;p&gt;Displaying that raw response directly in the UI didn't look good, so I used &lt;code&gt;react-markdown&lt;/code&gt; to render the Markdown properly in my React app.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwzvdgiyxuezx6r61o35q.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwzvdgiyxuezx6r61o35q.png" alt=" " width="729" height="1053"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting a Hugging Face Access Token
&lt;/h2&gt;

&lt;p&gt;Before connecting my app to an AI model, I needed a Hugging Face access token.&lt;/p&gt;

&lt;p&gt;Creating one only took a few minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a &lt;a href="https://huggingface.co/join" rel="noopener noreferrer"&gt;Hugging Face account&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open &lt;a href="https://huggingface.co/settings/tokens" rel="noopener noreferrer"&gt;&lt;strong&gt;Access Tokens&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Create a new fine-grained token.&lt;/li&gt;
&lt;li&gt;Enable inference permissions.&lt;/li&gt;
&lt;li&gt;Copy the token.&lt;/li&gt;
&lt;/ol&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyn0egjpbekfbyhs2mzj4.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyn0egjpbekfbyhs2mzj4.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Setting Up the Environment Variable
&lt;/h2&gt;

&lt;p&gt;After getting my Hugging Face token, I needed to use it inside my React application.&lt;/p&gt;

&lt;p&gt;Instead of hardcoding my API key directly into my React code, I stored it in a &lt;code&gt;.env&lt;/code&gt; file to keep my configuration separate from the source code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VITE_HF_ACCESS_TOKEN=YOUR_API_KEY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I accessed it inside my application using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;VITE_HF_ACCESS_TOKEN&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At first, I thought keeping my token in a &lt;code&gt;.env&lt;/code&gt; file meant it was completely safe.&lt;/p&gt;

&lt;p&gt;But after learning how Vite handles environment variables, I realized that wasn't true.&lt;/p&gt;

&lt;p&gt;Since my React application needs the token to make the API request, Vite exposes &lt;code&gt;VITE_&lt;/code&gt; environment variables to the frontend during the build process. That also means the browser has access to them.&lt;/p&gt;

&lt;p&gt;One thing that confused me was this: if my &lt;code&gt;.env&lt;/code&gt; file wasn't part of my application code, then how was the browser still getting my API key?&lt;/p&gt;

&lt;p&gt;After understanding how Vite builds the application, it finally clicked. The &lt;code&gt;.env&lt;/code&gt; file helps keep my configuration separate from the source code, but &lt;code&gt;VITE_&lt;/code&gt; variables are still injected into the frontend because the browser needs them to make the API request.&lt;/p&gt;

&lt;p&gt;That's when I realized my API key wasn't actually secret anymore.&lt;/p&gt;

&lt;p&gt;While researching this, I also understood why backend applications are important. Instead of letting the browser call the Hugging Face API directly, the better approach is to keep the API key on the backend. The frontend sends the user's ingredients to the backend, the backend talks to the AI using the secret API key, and only the generated recipe is returned to the frontend.&lt;/p&gt;

&lt;p&gt;Even though I haven't learned backend development yet, this was the moment I finally understood why developers keep saying that secret API keys should never live in the frontend.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;One thing I learned:&lt;/strong&gt; Keeping &lt;code&gt;.env&lt;/code&gt; out of your source code and keeping an API key secret are two different things. If the frontend needs the key, the browser will eventually have access to it. That's why sensitive API keys should be kept on a backend or serverless function.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Connecting the Model
&lt;/h2&gt;

&lt;p&gt;After setting up the API key, the next step was connecting my React application to an AI model.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;HfInference&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@huggingface/inference&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;SYSTEM_PROMPT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`
You are an assistant that receives a list of ingredients that a user has and suggests a recipe they could make with some or all of those ingredients. You don't need to use every ingredient they mention in your recipe. The recipe can include additional ingredients they didn't mention, but try not to include too many extra ingredients. Format your response in markdown to make it easier to render to a web page
`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;HfInference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;VITE_HF_ACCESS_TOKEN&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getRecipeFromMistral&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ingredientsArr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ingredientsString&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ingredientsArr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;hf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chatCompletion&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="c1"&gt;// I'm using Qwen 2.5 7B Instruct, but you can replace it with any compatible Hugging Face model.&lt;/span&gt;
        &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Qwen/Qwen2.5-7B-Instruct&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;SYSTEM_PROMPT&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`I have &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;ingredientsString&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;. Please give me a recipe I'd recommend!`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's break down what each part is doing.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;HfInference&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Instead of manually sending HTTP requests to the Hugging Face API, the SDK provides a client that makes interacting with AI models much simpler.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;SYSTEM_PROMPT&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The system prompt tells the AI how it should behave.&lt;/p&gt;

&lt;p&gt;In my project, I wanted the AI to act like a recipe assistant. It should take the user's ingredients, suggest a recipe, and return the response in Markdown so I could render it nicely in my UI.&lt;/p&gt;

&lt;p&gt;Without a system prompt, the AI still responds, but it doesn't have clear instructions about the format or the type of answer I expect.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ingredientsArr.join(", ")&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The ingredients entered by the user are stored as an array.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Rice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Egg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Onion&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Tomato&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before sending them to the AI, I converted them into a single string using &lt;code&gt;.join(", ")&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Rice, Egg, Onion, Tomato
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a natural sentence that becomes part of the user's prompt.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;chatCompletion()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This is the function provided by the Hugging Face SDK that sends my prompt to the selected AI model and returns its response.&lt;/p&gt;

&lt;p&gt;In simple words, this is where my React application actually talks to the AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Returning the recipe
&lt;/h3&gt;

&lt;p&gt;Finally, I return:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives me the generated recipe, which I later render in my React application using &lt;code&gt;react-markdown&lt;/code&gt;.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp37fhgdr2kojiqqbbf4q.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp37fhgdr2kojiqqbbf4q.png" alt=" " width="515" height="1140"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Response Was Markdown
&lt;/h2&gt;

&lt;p&gt;After connecting the AI model, I thought the hard part was over.&lt;/p&gt;

&lt;p&gt;The user clicked the &lt;strong&gt;"Get a Recipe"&lt;/strong&gt; button, the AI generated a recipe, and everything worked.&lt;/p&gt;

&lt;p&gt;But there was one small problem.&lt;/p&gt;

&lt;p&gt;The response didn't look good in the UI.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1nl1wrz5ss9ybai2jt76.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1nl1wrz5ss9ybai2jt76.png" alt=" " width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The AI was already returning a well-structured Markdown response, and when I rendered it directly, it looked like plain text instead of a nicely formatted recipe.&lt;/p&gt;

&lt;p&gt;That's when I discovered &lt;code&gt;react-markdown&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Instead of manually formatting the response, I used &lt;code&gt;react-markdown&lt;/code&gt; to render the Markdown as React elements.&lt;/p&gt;

&lt;p&gt;The difference was immediately noticeable. Headings, bullet points, and formatting started looking like a proper recipe instead of a block of text.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpwyjizru45grgk5iz8lq.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpwyjizru45grgk5iz8lq.png" alt=" " width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That small library made the final output look much better without adding much extra code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;When I started this project, I thought integrating AI simply meant sending a prompt and getting a response.&lt;/p&gt;

&lt;p&gt;By the end, I realized there was much more involved—structuring prompts, handling responses, understanding how environment variables work, and presenting the AI's output in a way that feels polished to the user.&lt;/p&gt;

&lt;p&gt;This project also reminded me that every library solves a specific problem. Instead of building everything from scratch, knowing when to use the right tool is just as important.&lt;/p&gt;

&lt;p&gt;If you've built something similar or have suggestions, I'd love to hear them in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
    </item>
    <item>
      <title>When Props Started Getting Messy: Learning React Context API</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Mon, 13 Jul 2026 10:37:05 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/when-props-started-getting-messy-learning-react-context-api-11p2</link>
      <guid>https://dev.to/md_shahzebalam/when-props-started-getting-messy-learning-react-context-api-11p2</guid>
      <description>&lt;p&gt;When building React apps, passing props felt simple at first.&lt;/p&gt;

&lt;p&gt;But as I started working with more components, it became confusing for me.&lt;/p&gt;

&lt;p&gt;Sometimes I had to check where I passed a prop, which component needed it, and whether I was passing it through the right component.&lt;/p&gt;

&lt;p&gt;While building Chef Claude, I started wondering how this would work in a much bigger app.&lt;/p&gt;




&lt;h2&gt;
  
  
  When Props Started Getting Messy
&lt;/h2&gt;

&lt;p&gt;When passing props in a small app, it feels easy to manage. But as the app grows, passing props can start to feel messy.&lt;/p&gt;

&lt;p&gt;While passing props, I had to keep a few things in mind. Sibling components can't directly pass props to each other. If they need to share state, the state can be moved to their closest common parent and then passed down through props.&lt;/p&gt;

&lt;p&gt;Props drilling happens when data is passed through multiple component levels just to reach a component deeper in the tree.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvh7nvcv21h03ug0no3v6.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvh7nvcv21h03ug0no3v6.png" alt=" " width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The thing that confused me was knowing when to pass props, where to pass them, and how I should pass them. Sometimes it became difficult for me to track how the data was moving between components.&lt;/p&gt;




&lt;h2&gt;
  
  
  Then I Learned Context API
&lt;/h2&gt;

&lt;p&gt;Then I learned about Context API and understood another way of sharing data between components.&lt;/p&gt;

&lt;p&gt;Instead of passing the same data through multiple components, Context lets us share data from a Provider and access it in the components that need it.&lt;/p&gt;

&lt;p&gt;Using &lt;code&gt;useContext()&lt;/code&gt;, a component can access shared data without passing it through every intermediate component as props.&lt;/p&gt;

&lt;p&gt;To understand how it actually works, I built a simple dark and light theme changer. I wanted to see how the data flows and how multiple components can access the same context.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ThemeContext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createContext&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;themeMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;light&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;darkTheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="na"&gt;lightTheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ThemeProvider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ThemeContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Provider&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;useTheme&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;useContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ThemeContext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The thing that clicked for me was actually very small.&lt;/p&gt;

&lt;p&gt;A small change in &lt;code&gt;className&lt;/code&gt; was changing the theme of the entire page.&lt;/p&gt;

&lt;p&gt;I didn't need to write a bunch of code for every component. The theme was shared through Context, and the components could use it where needed.&lt;/p&gt;

&lt;p&gt;That's when Context API finally started making sense to me.&lt;/p&gt;

&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7dqrmtvlhusb2x7uesrk.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7dqrmtvlhusb2x7uesrk.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  When I Would Still Use Props
&lt;/h2&gt;

&lt;p&gt;After learning Context API, I understood that it doesn't mean I should stop using props.&lt;/p&gt;

&lt;p&gt;If I only need to pass data from a parent to one child component, setting up Context doesn't make much sense to me. Props are already simple enough for that.&lt;/p&gt;

&lt;p&gt;I would use Context when the same data needs to be shared across multiple components and passing it through several component levels starts getting messy.&lt;/p&gt;

&lt;p&gt;For me, it is not about replacing props with Context.&lt;/p&gt;

&lt;p&gt;It's about knowing when props are enough and when shared data needs a better place.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Takeaway
&lt;/h2&gt;

&lt;p&gt;Before learning Context API, I often got confused about where state should live and how props should move between components.&lt;/p&gt;

&lt;p&gt;Learning Context helped me understand that I don't always need to pass shared data through every component.&lt;/p&gt;

&lt;p&gt;Props still have their place, and Context isn't a replacement for them. For me, the important part was learning when to use each.&lt;/p&gt;

&lt;p&gt;Did you also struggle with passing props when learning React? When did Context API finally click for you?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>React Dynamic Web Apps &amp; Clean Form States</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Wed, 08 Jul 2026 14:50:45 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/react-dynamic-web-apps-clean-form-states-52d4</link>
      <guid>https://dev.to/md_shahzebalam/react-dynamic-web-apps-clean-form-states-52d4</guid>
      <description>&lt;p&gt;While building &lt;strong&gt;Chef Claude&lt;/strong&gt;, I realized React wasn't just helping me build a UI.&lt;/p&gt;

&lt;p&gt;It completely changed the way I handled forms and dynamic data.&lt;/p&gt;

&lt;p&gt;In vanilla JavaScript, I was writing a lot of code just to grab a value from a form and update the page.&lt;/p&gt;

&lt;p&gt;Then I discovered &lt;code&gt;useState&lt;/code&gt; and &lt;code&gt;FormData&lt;/code&gt;, and things started to click.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Chef Claude lets users enter ingredients and generates a recipe.&lt;/p&gt;

&lt;p&gt;Before React, I would've selected the input manually, grabbed its value, and updated the DOM myself.&lt;/p&gt;

&lt;p&gt;That works, but it quickly becomes messy as your app grows.&lt;/p&gt;

&lt;p&gt;Here's the function I used to handle the form:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleIngredientSubmit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="c1"&gt;// Read the submitted value&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;formData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FormData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;newIngredient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;formData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ingredient&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Add the new ingredient to state&lt;/span&gt;
  &lt;span class="nf"&gt;setIngredients&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;prevIngredients&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;prevIngredients&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;newIngredient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;FormData&lt;/code&gt; lets me read the submitted value directly from the form.&lt;/p&gt;

&lt;p&gt;I could have used a controlled input with &lt;code&gt;onChange&lt;/code&gt;, but for this project I only needed the value after the form was submitted.&lt;/p&gt;

&lt;p&gt;Using &lt;code&gt;FormData&lt;/code&gt; kept the code much simpler.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Surprised Me
&lt;/h2&gt;

&lt;p&gt;The thing that surprised me wasn't &lt;code&gt;FormData&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It was how little code I had to write.&lt;/p&gt;

&lt;p&gt;I expected to manage every input manually, but instead I could grab the submitted value and update my state.&lt;/p&gt;

&lt;p&gt;Another thing that finally clicked for me was &lt;strong&gt;conditional rendering&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In Chef Claude, I didn't want to show the &lt;strong&gt;Generate Recipe&lt;/strong&gt; button until the user had entered at least &lt;strong&gt;four ingredients&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of writing multiple &lt;code&gt;if...else&lt;/code&gt; statements, React let me describe that condition directly in the UI.&lt;/p&gt;




&lt;h3&gt;
  
  
  Before entering four ingredients
&lt;/h3&gt;

&lt;blockquote&gt;
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkhe8ij7qwwkynjifivsy.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkhe8ij7qwwkynjifivsy.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  After entering four ingredients
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Generate Recipe&lt;/strong&gt; button appears automatically because the condition is now true.&lt;/p&gt;

&lt;blockquote&gt;
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4a13zo90i99jgminxnc8.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4a13zo90i99jgminxnc8.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Before this project, I was still solving React problems the same way I'd solve them in vanilla JavaScript.&lt;/p&gt;

&lt;p&gt;Building Chef Claude helped me understand that React already gives you cleaner ways to handle forms and dynamic UI. You just need to know when to use them.&lt;/p&gt;

&lt;p&gt;Small things like &lt;code&gt;useState&lt;/code&gt;, &lt;code&gt;FormData&lt;/code&gt;, and conditional rendering removed a lot of repetitive code that I would've written in vanilla JavaScript.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project made me stop thinking in vanilla JavaScript and start thinking the React way.&lt;/p&gt;

&lt;p&gt;What React feature made things finally click for you?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Stop Writing Massive, Single-Page Codebases A Raw Look at React Components: and Props</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Thu, 02 Jul 2026 12:17:33 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/stop-writing-massive-single-page-codebases-a-raw-look-at-react-components-and-props-3min</link>
      <guid>https://dev.to/md_shahzebalam/stop-writing-massive-single-page-codebases-a-raw-look-at-react-components-and-props-3min</guid>
      <description>&lt;p&gt;Before React, we used to render web pages using raw JavaScript and &lt;code&gt;root.render&lt;/code&gt;. We had to make a single &lt;code&gt;div&lt;/code&gt; inside our HTML file, and then write the entire project's code on that one page. It quickly became super cluttered and messy as the project grew.&lt;/p&gt;

&lt;p&gt;React custom components completely fixed this headache for us developers. They let us break big, complex UI tasks into small, isolated pieces that we can bundle together and render easily.&lt;/p&gt;

&lt;p&gt;Here is how the system scales step-by-step:&lt;/p&gt;

&lt;p&gt;1 Custom Components &amp;amp; Fragments&lt;/p&gt;

&lt;p&gt;&lt;code&gt;jsx&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
    &lt;span class="p"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Header&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;MainContent&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Footer&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt; 
    &lt;span class="p"&gt;&amp;lt;/&amp;gt;&lt;/span&gt; 
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;   
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Composability:&lt;/strong&gt; Custom components give you the power to break a huge layout task down into smaller, manageable individual files (like &lt;code&gt;&amp;lt;Header /&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;Footer /&amp;gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Clutter:&lt;/strong&gt; &lt;code&gt;&amp;lt;&amp;gt;&amp;lt;/&amp;gt;&lt;/code&gt; are fragments. In React, these fragments let you group your child elements together without creating extra, useless &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tags inside your final HTML markup.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;2 Reusable Components &amp;amp; Props&lt;/p&gt;

&lt;p&gt;&lt;code&gt;jsx&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;travelImg&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./assets/travel.png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Setup&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Setup&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Utility:&lt;/strong&gt; Props let you reuse the same component multiple times with different data. You can design one single card layout, and pass different data into it wherever and whenever you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusability:&lt;/strong&gt; Props turn hardcoded layout blocks into completely reusable assets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Assets:&lt;/strong&gt; You can directly import your assets (like images) right into your components and reuse them across your app easily.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe Rendering:&lt;/strong&gt; Using the &lt;code&gt;{props.Setup &amp;amp;&amp;amp; &amp;lt;p&amp;gt;{props.Setup}&amp;lt;/p&amp;gt;}&lt;/code&gt; conditional logic protects your UI. If a specific data piece is missing from the database, React skips the tag instead of throwing an error.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;3 Props, Array Mapping &amp;amp; Spreading&lt;/p&gt;

&lt;p&gt;&lt;code&gt;jsx&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;travel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;datas&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Entry&lt;/span&gt; 
        &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;datas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; 
        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;datas&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; 
      &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt; 
    &lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="p"&gt;});&lt;/span&gt; 

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&amp;gt;&lt;/span&gt; 
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Header&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt; 
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;travel&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; 
    &lt;span class="p"&gt;&amp;lt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No More Hardcoding:&lt;/strong&gt; Instead of manually writing out hardcoded text in your files, you can use the native JavaScript &lt;code&gt;.map()&lt;/code&gt; method to pull data dynamically from an array file and render it through props.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Spread Power Move:&lt;/strong&gt; Using the spread method (&lt;code&gt;{...datas}&lt;/code&gt;) directly inside your loop lets you pass properties cleanly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How it Works:&lt;/strong&gt; &lt;code&gt;{...datas}&lt;/code&gt; unpacks the object. It takes all the key-value pairs inside that specific data block and automatically passes them down as individual props into your component, rendering your data instantly with minimal code boilerplate.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
 By using React, building web applications becomes incredibly straightforward. Passing JavaScript objects through props gives you full reusability over your custom components, completely changing how you manage data templates. Ultimately, React eliminates the manual copy-paste grind and makes life so much easier for developers building modern web apps.&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Participate in These 15 Open-Source Events During Hacktoberfest and Win Exciting Swag 🎁</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Thu, 09 Oct 2025 10:43:58 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/participate-in-these-15-open-source-events-during-hacktoberfest-and-win-exciting-swag-22eb</link>
      <guid>https://dev.to/md_shahzebalam/participate-in-these-15-open-source-events-during-hacktoberfest-and-win-exciting-swag-22eb</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What’s Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;It’s a month long Open-Source Event Organized by DigitalOcean where you can contribute to Open-Source throughout the October month whether you are Seasoned Contributor or Regular Contributor you can come and Contribute to Open-Source Whether you are a Programmer or not a Programmer you can Contribute to many cool Projects out There.&lt;/strong&gt;
&lt;/h3&gt;

&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%2Fk4bm3n9dm260ykskovks.png" 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%2Fk4bm3n9dm260ykskovks.png" alt=" " width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Here’s How you can Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Register on&lt;/strong&gt; &lt;a href="https://hacktoberfest.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Hactoberfest&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;Website&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Find Repos With “Hacktoberfest” tag laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make 6 Valid Contributions before 31st October&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;There’s a Website for&lt;/strong&gt; &lt;a href="https://goodfirstissue.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;good-first-issue&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;where you can find begginer’s level issues to contribute to&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fzjomqk3o39ftdovpxenx.png" 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%2Fzjomqk3o39ftdovpxenx.png" alt=" " width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Get 6 PR Merged the first 10,000 Contributors will get a Hacktoberfest T-shirt&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After 6 PR Merged a Tree will be planted on your Name&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Ff53abpjfvykhxxnwwd91.png" 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%2Ff53abpjfvykhxxnwwd91.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s a great time to start your Open-Source journey in these Month Who Knows you will become a long-term Contributor&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;1. Hyperswitch Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Fbq0li8tes6d5232c4n44.png" 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%2Fbq0li8tes6d5232c4n44.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HyperSwitch is an open-source payment switch by Juspay that lets developers connect multiple payment gateways through one simple API. It helps make online payments faster, smarter, and more reliable. A perfect Hacktoberfest project if you’re curious about fintech and backend systems.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to thier&lt;/strong&gt; &lt;a href="https://hyperswitch.io/hacktoberfest" rel="noopener noreferrer"&gt;&lt;strong&gt;Hacktoberfest&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Find the options to Contribute to&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to github and find “Hacktoberfest” tag Laballed issues to Contribute&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;1 PR Merged Will get a T-shirt&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;3+ PR Merged Will get T-shirt and Hoodie&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fvhhu29ai0m6wt0lw0cj9.png" 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%2Fvhhu29ai0m6wt0lw0cj9.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contribute to HyperSwitch this Hacktoberfest and dive into the world of payments! It’s a great way to learn how modern fintech systems connect and power global transactions.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. dodopayments Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Foume55eo6xunxgzydgfj.png" 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%2Foume55eo6xunxgzydgfj.png" alt=" " width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dodo Payments helps businesses accept payments worldwide with one simple integration. It’s open, developer-friendly, and perfect for anyone who wants to explore fintech projects this Hacktoberfest.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to their&lt;/strong&gt; &lt;a href="https://dodopayments.com/blogs/hacktoberfest-2025-dodo-payments" rel="noopener noreferrer"&gt;&lt;strong&gt;Hacktoberfest&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the Repo according to your Skills in the page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to github and find “Hacktoberfest” tag Laballed issues to Contribute&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Major Contributors will recieve a swag pack T-shirt, Caps &amp;amp; Stickers&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;you will also get to mention in their Hall of Fame and get shout-outs across their Socials&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2F0z1jkywsa42fhzbir6sg.png" 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%2F0z1jkywsa42fhzbir6sg.png" alt=" " width="622" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join Dodo Payments this Hacktoberfest to explore how global payments work. Contribute to docs, SDKs, or integrations and learn how fintech systems come together behind the scenes!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. Appwrite Hacktoberfest Hackathon&lt;/strong&gt;
&lt;/h2&gt;

&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%2Fbq1q43bse12a2g1cgn1d.png" 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%2Fbq1q43bse12a2g1cgn1d.png" alt=" " width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Appwrite is hosting a fun Hacktoberfest-themed hackathon this October You can build anything a web app, mobile app, game, or something totally new. It’s all about fresh ideas, learning, and creating cool projects from scratch with Appwrite.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hacktoberfest.appwrite.network/" rel="noopener noreferrer"&gt;&lt;strong&gt;Register&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;with your github account&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Teams can have 1 member only&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build and deploy a project from scratch using Appwrite Cloud&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Add project submission to these&lt;/strong&gt; &lt;a href="https://github.com/appwrite-community/hf2025-hackathon-submissions" rel="noopener noreferrer"&gt;&lt;strong&gt;site&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 5 Projects will recieve a Appwrite Swag kit&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Swag kit includes Customized hoodie, T-shirt, Mouse pad, and Stickers&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2F5ftc82k0k5okci9cgyuj.png" 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%2F5ftc82k0k5okci9cgyuj.png" alt=" " width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join the Appwrite Hacktoberfest Hackathon and build something from scratch a web app, mobile app, or even a game. It’s all about fresh ideas, learning, and having fun creating with Appwrite!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4. CopilotKit Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F2covmdg4m6qx881txgza.gif" 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%2F2covmdg4m6qx881txgza.gif" alt=" " width="760" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CopilotKit lets you easily add your own AI copilot to any app — like giving your users a built-in ChatGPT that understands your product. It’s open source, beginner-friendly, and a great project to explore this Hacktoberfest if you love building with AI.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go t their&lt;/strong&gt; &lt;a href="https://github.com/CopilotKit/CopilotKit/tree/main/community/content" rel="noopener noreferrer"&gt;&lt;strong&gt;Hactoberfest&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Project Setup - go to&lt;/strong&gt; &lt;a href="https://github.com/CopilotKit/CopilotKit/blob/main/community/content/CONTRIBUTING.md" rel="noopener noreferrer"&gt;&lt;strong&gt;CONTRIBUTION.md&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;to get started&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick a Issue in github with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open a PR after Completing the task&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Post on X with @CopilotKit + #CopilotKitHacktoberfest - top liked Projects win&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Every Merged PR will get a CopilotKit Hacktoberfest Certificate&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 5 Projects by Twitter likes will win Copilotkit Swag&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fkz0arq468sh4it2lpbfc.png" 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%2Fkz0arq468sh4it2lpbfc.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This Swag is from 2024 Hacktoberfest. Build your own AI copilot with CopilotKit this Hacktoberfest! It’s a fun way to explore AI integrations and create something truly interactive. Ready to start building?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;5. Cloudinary Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F0lx8eibo6y44otlfe4na.png" 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%2F0lx8eibo6y44otlfe4na.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloudinary makes it super easy to upload, manage, and optimize images and videos for the web. They’re joining Hacktoberfest to welcome contributors to improve docs, demos, and SDKs - perfect if you love working with media and web projects.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to their&lt;/strong&gt; &lt;a href="https://cloudinary.com/blog/hacktoberfest-2025" rel="noopener noreferrer"&gt;&lt;strong&gt;Hacktoberfest&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;There a lots of Repos choose the repos according to yours&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to the repos and read the CONTRIBUTING guide&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick a Issue in github with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make a meaningful contributions don’t spam&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;30 swag kits for contributors based on first-come, first-served basis&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Swag kit includes -&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;1 Cloudinary Hacktoberfest T-shirt&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2 Cloudinary Hacktoberfest Stickers, 3 Cloudinary Stickers&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;1 Cloudinary Unicorn&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fu8e3p848b87ixz1rgnul.png" 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%2Fu8e3p848b87ixz1rgnul.png" alt=" " width="723" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join Cloudinary this Hacktoberfest to explore how images and videos power the web. It’s a great chance to improve docs, demos, and tools while learning about media optimization!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;6. Goose Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F8mpq3qw4djj5njyold0w.png" 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%2F8mpq3qw4djj5njyold0w.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Goose is an open-source AI agent that runs locally on your machine. It can edit files, run commands, integrate with APIs - basically automating parts of your dev workflow. Ideal for anyone curious about AI agents and wants to build cool tooling during Hacktoberfest.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to their&lt;/strong&gt; &lt;a href="https://github.com/block/goose/issues/4705" rel="noopener noreferrer"&gt;&lt;strong&gt;Hacktoberfest Project Hub&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the one of the issue to contribute to&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can only work on one issue at a time&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can directly assign the issue by yourself just comment&lt;/strong&gt; &lt;code&gt;.take&lt;/code&gt; &lt;strong&gt;in the issue&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can check leaderboard in these&lt;/strong&gt; &lt;a href="https://github.com/block/goose/issues/4775" rel="noopener noreferrer"&gt;&lt;strong&gt;leaderboard&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rewards on the basis of Points System&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The More Points you have the more swag you are going to take home&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 5 - Will get $100 gift card of their&lt;/strong&gt; &lt;a href="https://www.gooseswag.xyz/" rel="noopener noreferrer"&gt;&lt;strong&gt;goose swag shop&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and $100 of LLM credits!&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 6-10 - Will get $50 gift card of their&lt;/strong&gt; &lt;a href="https://www.gooseswag.xyz/" rel="noopener noreferrer"&gt;&lt;strong&gt;goose swag shop&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and $50 of LLM credits!&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 11-20: $25 of LLM credits!&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fd7r2y74xneo55cmjfsjf.png" 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%2Fd7r2y74xneo55cmjfsjf.png" alt=" " width="799" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try out Goose this Hacktoberfest! It’s all about building local AI agents that can automate your dev tasks. Fun, hands-on, and perfect for anyone curious about AI + coding.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;7. Flexprice Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F9takdi4tfocxex2sbtim.jpeg" 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%2F9takdi4tfocxex2sbtim.jpeg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexprice is an open-source billing/usage-tracking tool made for AI and API-based teams. It helps you do things like charge by usage, give promo credits, control feature access — without building your own billing system. Great for anyone who hates spending too much time wrangling invoicing or pricing logic.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Join their&lt;/strong&gt; &lt;a href="https://t.co/DkJriWIdhK" rel="noopener noreferrer"&gt;&lt;strong&gt;Slack&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;community and go to&lt;/strong&gt; &lt;a href="https://x.com/nikhil__mishra/status/1974412729990701385" rel="noopener noreferrer"&gt;&lt;strong&gt;Hacktoberfest&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;announcement page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to the repo and read the CONTRIBUTING guide&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the issue in github with with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comment on issue “I’m on it”&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open a PR that passes checks &amp;amp; follows the template&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 5 Contributors will get flexprice swag pack&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shoutout on our X, LinkedIn &amp;amp; Slack community&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fl4z8eixt4qjhp6n7audo.jpeg" 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%2Fl4z8eixt4qjhp6n7audo.jpeg" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join Flexprice this Hacktoberfest to explore how usage-based billing really works. It’s a great pick if you’re into APIs, SaaS, or building cool backend tools. Ready to contribute?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;8. Robo.js Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Fsg2rbz4fjvb3jpu6pmjn.png" 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%2Fsg2rbz4fjvb3jpu6pmjn.png" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Robo.js is a framework for building Discord Bots, Discord Activities, and Web Apps—with batteries included. It streamlines your workflow via plugins, sensible defaults, and a smooth DX so you can ship faster.How to Participate&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to Their&lt;/strong&gt; &lt;a href="https://dev.to/waveplay/hacktoberfest-2025-create-discord-features-or-videos-to-win-rewards-2d48"&gt;&lt;strong&gt;announcement&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can contribute by making Plugins, Video Content, Feature for Framework&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the issue in github with with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;They have points system the more point you earn the swag will be yours&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top 3 contributors will recieve Robo.js Hacktoberfest 2025 T‑Shirt&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For every meaningful contributions will get Free Discord Nitro&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alternative for top contributors will recieve $25 USD&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The more number of contributors the more rewards will be stretch&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2F11zb59be00yba8ad34ao.png" 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%2F11zb59be00yba8ad34ao.png" alt=" " width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This Swag is from 2023 Hacktoberfest Get creative with Robo.js this Hacktoberfest! Build smart automations, try out new ideas, and have fun bringing little coding bots to life. Ready to roll?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;9. iTop Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Fqe67o82d4s7f86egj89w.png" 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%2Fqe67o82d4s7f86egj89w.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iTop is an open-source tool that helps teams manage IT assets and support tickets. It’s great for anyone curious about IT systems — plus, there are beginner-friendly doc and translation issues for Hacktoberfest!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;This is Their official&lt;/strong&gt; &lt;a href="https://combodo.com/ecosystem/join-us-for-hacktoberfest/" rel="noopener noreferrer"&gt;&lt;strong&gt;announcement&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The link of their full list of&lt;/strong&gt; &lt;a href="https://github.com/search?q=topic%3Ahacktoberfest+org%3ACombodo+fork%3Atrue&amp;amp;type=repositories" rel="noopener noreferrer"&gt;&lt;strong&gt;repos&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Choose the project you’d like to contribute for&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a Pull Request of the issue&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;iTop Hacktoberfest stickers&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;iTop insulated bottle after reaching 3 valid PRs&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Combodo offers voucher for extensions for best contributor with 6 accepted PRs&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Ffyyqkcxzd0t156ua32me.png" 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%2Ffyyqkcxzd0t156ua32me.png" alt=" " width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This Hacktoberfest, give iTop a try! It’s a great way to explore how IT teams actually manage their systems and you’ll pick up some real-world skills along the way. Ready to jump in?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;10. Ballerina Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Futvyo8myr49aqlf4bvmz.png" 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%2Futvyo8myr49aqlf4bvmz.png" alt=" " width="799" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ballerina is an open-source language for building cloud apps and APIs. It’s easy to learn and fun to explore during Hacktoberfest.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;This is Their official&lt;/strong&gt; &lt;a href="https://ballerina.io/hacktoberfest/" rel="noopener noreferrer"&gt;&lt;strong&gt;announcement&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can contribute both code &amp;amp; non-code contributions&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Explore and pick the issues on their&lt;/strong&gt; &lt;a href="https://github.com/orgs/ballerina-platform/projects/376" rel="noopener noreferrer"&gt;&lt;strong&gt;github&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Submit a PR on the issue you are working on&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For non-code contributions publish your work &amp;amp; submit the&lt;/strong&gt; &lt;a href="https://forms.gle/rs5kBkk25ikhgHBg6" rel="noopener noreferrer"&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;here&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top Contributors Will recieve Amazon voucher according to credits you earn&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A Swag pack for top contributors&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free vouchers for WSO2 &amp;amp; Certifications&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;USD $1000 worth credits for WSO2&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fa6l1scycu9g09y5fv9yx.png" 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%2Fa6l1scycu9g09y5fv9yx.png" alt=" " width="799" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build something cool with Ballerina this Hacktoberfest! It’s simple to pick up and a fun way to explore cloud and API development. Ready to give it a shot?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;11 Lamatic.ai Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Fgev9wa0n19osy5pl08sb.png" 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%2Fgev9wa0n19osy5pl08sb.png" alt=" " width="799" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lamatic.ai helps you build AI agents that can automate tasks and connect with your tools. It’s open-source and a fun pick if you want to tinker with AI projects this Hacktoberfest.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make 4 valid PRs to any of the three repositories.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PRs must be valid and follow project guidelines.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Add&lt;/strong&gt; &lt;code&gt;hacktoberfest&lt;/code&gt; &lt;strong&gt;tag to PR title or description.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;This is their official&lt;/strong&gt; &lt;a href="https://lamatic.ai/docs/hacktoberfest" rel="noopener noreferrer"&gt;&lt;strong&gt;announcement&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;page&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lamatic swag,T-shirt, stickers for active contributors&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Top contributors will be featured on our Contributors Hall of Fame&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community spotlight for outstanding contributions&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2F9ff2z1yub9qzs4ejgval.png" 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%2F9ff2z1yub9qzs4ejgval.png" alt=" " width="763" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try out&lt;/strong&gt; &lt;a href="http://Lamatic.ai" rel="noopener noreferrer"&gt;&lt;strong&gt;Lamatic.ai&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;this Hacktoberfest! It’s a fun way to experiment with AI agents and automation while making real open-source contributions. Ready to build something smart?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;12. ServiceNow Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F0ek2g4dsj298un7k24f9.gif" 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%2F0ek2g4dsj298un7k24f9.gif" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ServiceNow is a platform that helps companies manage workflows — from IT support to HR tasks — all in one place. It’s a good project to explore if you’re into automation and enterprise tools.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You need to complete 6 PRs of main “Hacktoberfest” event&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You need to Post a comment on this&lt;/strong&gt; &lt;a href="https://www.servicenow.com/community/developer-advocate-blog/hacktoberfest-2025-building-with-servicenow-giving-with/ba-p/3386849" rel="noopener noreferrer"&gt;&lt;strong&gt;blog post&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;detailing your contributions and sharing your experience&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You will need a ServiceNow community account to comment&lt;/strong&gt; &lt;a href="https://account.servicenow.com/sign-up" rel="noopener noreferrer"&gt;&lt;strong&gt;register&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;here&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contributors will recieve ServiceNow merch store codes. You can pick CreatorCon T-shirts &amp;amp; Other miscellaneous ServiceNow merch&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contributors will recieve a Community Badge&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fga9fheo9hv0cao1jj3bk.png" 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%2Fga9fheo9hv0cao1jj3bk.png" alt=" " width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This Swag is from 2024. Join ServiceNow this Hacktoberfest to explore how automation powers real-world workflows. It’s a great way to learn, build, and contribute to something that helps teams work smarter!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;13. QuestDB Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F2s6newmhdssd6hf26d3b.png" 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%2F2s6newmhdssd6hf26d3b.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QuestDB is an open-source database built for speed — perfect for handling real-time data and analytics. Great pick if you’re into performance, data, or backend projects this Hacktoberfest.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute to open issues at one of the three participating repositories:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/questdb/questdb/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest" rel="noopener noreferrer"&gt;&lt;strong&gt;QuestDB Core&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/questdb/ui/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest" rel="noopener noreferrer"&gt;&lt;strong&gt;Web Console&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/questdb/documentation/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest" rel="noopener noreferrer"&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the issue in github with with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;T-shirts and Stickers for every contributor successfully contributed&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fxl3zlpfa166oabn69f3h.png" 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%2Fxl3zlpfa166oabn69f3h.png" alt=" " width="500" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dive into QuestDB this Hacktoberfest! It’s perfect if you love speed, data, and building tools that handle real-time information. Ready to contribute?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;14 devICT Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2F3bi4ewzxnbk4d3ky6ifi.png" 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%2F3bi4ewzxnbk4d3ky6ifi.png" alt=" " width="450" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;devICT is a friendly developer community that runs open-source projects, meetups, and events. It’s a great place to learn, contribute, and connect with other devs during Hacktoberfest.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You need to make two pull requests to qualifying Wichita projects&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Projects include&lt;/strong&gt; &lt;a href="https://github.com/devict" rel="noopener noreferrer"&gt;&lt;strong&gt;devICT&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; &lt;a href="https://github.com/grooverlabs" rel="noopener noreferrer"&gt;&lt;strong&gt;Groover Labs&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; &lt;a href="https://github.com/lake-afton-public-observatory" rel="noopener noreferrer"&gt;&lt;strong&gt;Lake Afton Public Observatory&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; &lt;a href="https://github.com/makeict" rel="noopener noreferrer"&gt;&lt;strong&gt;MakeICT&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read their CONTRIBUTING guide&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the issue in github with with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stickers for every contributors&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;15. LambdaTest Hacktoberfest&lt;/strong&gt;
&lt;/h2&gt;

&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%2Fookiz8jyhuyww7p6lye0.png" 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%2Fookiz8jyhuyww7p6lye0.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LambdaTest is a cloud platform that lets you test websites and apps across different browsers and devices. It’s a great pick for Hacktoberfest if you’re into QA, automation, or web development.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Participate&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You need Have 3+ merged PRs into a&lt;/strong&gt; &lt;a href="https://github.com/LambdaTest/lambdatest-hacktoberfest-2025?tab=readme-ov-file#-projects-you-can-contribute-to" rel="noopener noreferrer"&gt;&lt;strong&gt;LambdaTest project&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can start contributing by fixing bugs, improving documentation, or adding features.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick the issue in github with with “Hacktoberfest” tag Laballed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You need to submit your PRs&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Rewards:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After 3 Contributions – Amazon Vouchers (up to $10) and a LambdaTest License (90 days).&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After 5 Contributions or More – Amazon Vouchers (up to $20) and a LambdaTest License (90 days).&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What’s Next ?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;I have curated these 15 amazing open-source events you can contribute thus october!&lt;/strong&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Now it’s time to get started. Pick an event, dive in, and let’s make this Hacktober one to remember! 🎉&lt;/strong&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Which Open-source events you are most excited about?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;I’d love to hear what you’re planning to dive into—drop a comment below and let me know!👇&lt;/strong&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Thanks For Reading These Article ❤️ and Also Share Your Thoughts in The Comments ☺️&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>webdev</category>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Top Ubuntu Terminal Commands You Should Know</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Fri, 29 Aug 2025 19:44:09 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/top-ubuntu-terminal-commands-you-should-know-3p9l</link>
      <guid>https://dev.to/md_shahzebalam/top-ubuntu-terminal-commands-you-should-know-3p9l</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Ubuntu Terminal make use of a Shell Program to Interpret and Execute Commands. Bash(Bourne Again Shell) is the Default and Most Commonly Used Shell in Ubuntu. If you Just Started Using Linux Ubuntu the Terminal Might Look Scary at First But It’s Not Scary Its The Best Thing In the Ubuntu.So Ubuntu Terminal gives Full Control of the System Helps you Work Faster.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Most Commonly Used Commands
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;There are Lots Commands In Ubuntu Terminal but We Will Discover the Most Commoonly Used Commands&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pwd&lt;/code&gt; - Shows the current directory you are in&lt;/li&gt;
&lt;/ul&gt;

&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%2Fw8owk4ww25ji4rjb3hlw.png" 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%2Fw8owk4ww25ji4rjb3hlw.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ls&lt;/code&gt; - List files and Folders in your directory&lt;/li&gt;
&lt;/ul&gt;

&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%2F6mgc9mnktfeonts2nlw2.png" 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%2F6mgc9mnktfeonts2nlw2.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cd&lt;/code&gt; - Move between directories&lt;/li&gt;
&lt;/ul&gt;

&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%2Fsku20b3liea3kse2axvd.png" 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%2Fsku20b3liea3kse2axvd.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mkdir&lt;/code&gt; - Make a new folder&lt;/li&gt;
&lt;/ul&gt;

&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%2Feh07oav2urd98gxjfutt.png" 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%2Feh07oav2urd98gxjfutt.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;touch&lt;/code&gt; – Create a new file&lt;/li&gt;
&lt;/ul&gt;

&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%2F95hgemmmvq4mrlxdpn52.png" 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%2F95hgemmmvq4mrlxdpn52.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cp&lt;/code&gt; – Copy files or directories&lt;/li&gt;
&lt;/ul&gt;

&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%2Fdgd5e3nhm0198ei3smeq.png" 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%2Fdgd5e3nhm0198ei3smeq.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mv&lt;/code&gt; – Move or rename files&lt;/li&gt;
&lt;/ul&gt;

&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%2Fno2bjd8uqh0jdqo0zy4p.png" 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%2Fno2bjd8uqh0jdqo0zy4p.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;rm&lt;/code&gt; – Delete files&lt;/li&gt;
&lt;/ul&gt;

&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%2Fdq2uq8wbfyxzeyqc8g7w.png" 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%2Fdq2uq8wbfyxzeyqc8g7w.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;sudo&lt;/code&gt; – Run commands as an admin&lt;/li&gt;
&lt;/ul&gt;

&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%2F45v07y9rya79s7kh2tp6.png" 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%2F45v07y9rya79s7kh2tp6.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;df -h&lt;/code&gt; – Check disk space&lt;/li&gt;
&lt;/ul&gt;

&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%2Fljrzpyx5di5mtkbo6cqa.png" 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%2Fljrzpyx5di5mtkbo6cqa.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;top&lt;/code&gt; – See running processes&lt;/li&gt;
&lt;/ul&gt;

&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%2Fq6k9dmfbca6u5przavnr.png" 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%2Fq6k9dmfbca6u5przavnr.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;clear&lt;/code&gt; - It will clear the terminal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;exit&lt;/code&gt; - Close the terminal session&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  So, Learning Basics Commands Make you more Productive
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Thanks For Reading These Article ❤️ and Also Share Your Thoughts in The Comments ☺️&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>ubuntu</category>
      <category>terminal</category>
    </item>
    <item>
      <title>Simple Guide to Setting Up Git and GitHub</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Wed, 27 Aug 2025 20:39:35 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/simple-guide-to-setting-up-git-and-github-2pc3</link>
      <guid>https://dev.to/md_shahzebalam/simple-guide-to-setting-up-git-and-github-2pc3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Git is a Version Control System. It is a Tool that keep Track of your Code if you Changes Anything Git Will Recognise it Immediately and Change it Accordingly.&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Github is a Online Hosting Service of your Git Repo. In Simple Word its a Cloud For Developers like you Store your Data in Cloud as Same Github Does for Us to Keep Track of Our Code and Collaborate With Others its Easy using Github.&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Installation&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;If you are Using Windows&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to Site&lt;/strong&gt; &lt;a href="http://git-scm.com/downloads" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="http://git-scm.com/downloads" rel="noopener noreferrer"&gt;&lt;strong&gt;git-scm.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Download According to your OS&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After Downloading Install Git&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After Completing Installation Open Command Prompt In your System and Paste These Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If you See a Version, Then Git Is Installed Successfully ✅&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;If you are Using MacOS or Linux Then Follow These&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Terminal In your System&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Then Copy these Commands and Paste it in your Terminal and Run&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;After Installation Completed then Paste These Command&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If you See a Version, Then Git Is Installed Successfully ✅&lt;/strong&gt;&lt;/p&gt;

&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%2Ffbc9b5zm89y0w8iaxvbl.png" 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%2Ffbc9b5zm89y0w8iaxvbl.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Making A Github Account&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to These Site&lt;/strong&gt; &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;github.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now Sign Up Using your Details&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now Setup Everthing In Github&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fbsy3hnkmvxvrkc0ds8pw.png" 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%2Fbsy3hnkmvxvrkc0ds8pw.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your Github Account is Ready to use Now&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Setting Up Git&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open your Terminal again&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now Configure your Git With Github Account&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"your@email.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Creating a First Repo&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open&lt;/strong&gt; &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;github.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now go to The Repositories Section&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Click New Repo&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Add Name of Repository&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fa7z2jrwt50xa3v745o0h.png" 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%2Fa7z2jrwt50xa3v745o0h.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Click On Create Repository&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now It Will Show Like These&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2F42tonif3iwuoyu489h84.png" 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%2F42tonif3iwuoyu489h84.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now Open your Code Editor and Copy Paste These Commands&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"first commit"&lt;/span&gt;
git branch &lt;span class="nt"&gt;-M&lt;/span&gt; main
git remote add origin https://github.com/your_github_username/Project.git
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pro Tip Always Use&lt;/strong&gt; &lt;code&gt;add .&lt;/code&gt; &lt;strong&gt;It Will add All Files of your Project&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Congrats 🎉 now your project is live on GitHub!&lt;/strong&gt;
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Common Commands of Git&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git status&lt;/code&gt; &lt;strong&gt;- Check changes&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git log&lt;/code&gt; &lt;strong&gt;- See commit history&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git pull&lt;/code&gt; &lt;strong&gt;- Get latest updates&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git push&lt;/code&gt; &lt;strong&gt;- Upload changes&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Git &amp;amp; Github Is The Main Foundation of Open Source Collabaration&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Thanks For Reading These Article ❤️ and Also Share Your Thoughts in The Comments ☺️&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Deploy Your Web Application on Vercel Quickly</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Tue, 26 Aug 2025 19:43:19 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/deploy-your-web-application-on-vercel-quickly--1if0</link>
      <guid>https://dev.to/md_shahzebalam/deploy-your-web-application-on-vercel-quickly--1if0</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;🚀 Deploy Your Web Application on Vercel Quickly&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;If you’ve just built your first project with React, Next.js, or even plain HTML/CSS/JS, the next exciting step is getting it live on the internet. That’s where Vercel comes in. It’s one of the easiest and fastest platforms to deploy web apps no complicated setup, no extra servers, and free hosting for hobby projects.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to&lt;/strong&gt; &lt;a href="http://vercel.com" rel="noopener noreferrer"&gt;&lt;strong&gt;vercel.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a Account On Vercel&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sign Up With your Github Account and Intergrate With it&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 2&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Push your Code to The Github If you Have’nt&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;If you Have’nt Pushed the Code to Github Then Copy These Commands and Push your Project&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;
git branch &lt;span class="nt"&gt;-M&lt;/span&gt; main
git remote add origin https://github.com/your-username/project-name.git
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;It Will Show you Like These In your Github Repo According to your Project&lt;/strong&gt;&lt;/p&gt;

&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%2Fbr8q68z5uhz8ytc04gzu.png" 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%2Fbr8q68z5uhz8ytc04gzu.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now Go to The&lt;/strong&gt; &lt;a href="http://vercel.com" rel="noopener noreferrer"&gt;&lt;strong&gt;vercel.com&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;Website&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go to your Dashboard&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;on Vercel Dashboard, Click New Project&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now Choose your Github Repo&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vercel Will Auto-Detect your FrameWork you have Used in your Project&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Now Click On Deploy&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&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%2Fvyzejx9aoos3914ej6n6.png" 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%2Fvyzejx9aoos3914ej6n6.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 4&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Within a Seconds, Verel Will Deploy your Project&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You will get a URL of your App like These&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can Also Choose your own Custom Domain if you Want&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://your-app.vercel.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🎉 Congratulations! Your project is now live.&lt;/strong&gt;&lt;/p&gt;

&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%2F08b6bi79llmzas8slrls.png" 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%2F08b6bi79llmzas8slrls.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Vercel ▲&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free Hosting With SSL&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Deployement From Github&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Perfect For Frontend Apps, React, Next.JS&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;✅ And that’s it you’ve deployed your app on Vercel in just a few clicks&lt;/strong&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Thanks For Reading My Article ❤️ and Also Share Your Thoughts in The Comments ☺️&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>frontend</category>
      <category>vercel</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Setting Up a React Project with Vite Simplified ⚛︎</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Mon, 25 Aug 2025 19:03:35 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/setting-up-a-react-project-with-vite-simplified-1ll3</link>
      <guid>https://dev.to/md_shahzebalam/setting-up-a-react-project-with-vite-simplified-1ll3</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Vite is a Frontend Tool. It gives you a Pre ready Structured Folder and Files with all Dependencies Installed. Why Most of The Developers Prefers it Over CRA(Create React App) Cause It Gives Structured Folder Within a Seconds You Don’t Need to Manually Create Folders and Files and Install all The Dependencies and Also Don’t Have to Integrate The Packages of React And Babel .&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Benefits of Using Vite&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lighting Fast Dev Server&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Minimal Configuration&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Moder Build System&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smaller &amp;amp; cleaner project structure&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisites&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Node.js Installed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic Understanding of React&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code Editor&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Now Setting Up Project&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;First Open Terminal In your VS Code and Then Type These Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm create vite@latest my-vite-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Now It Show You Bunch of Frameworks Choose React With JavaScript or TypeScript&lt;/strong&gt;&lt;/p&gt;

&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%2F58ryixyhx81t6cvpgx31.png" 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%2F58ryixyhx81t6cvpgx31.png" alt=" " width="800" height="309"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;my-vite-app
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;It Will Navigate to your Project Folder and Install all Dependencies Which Is Required For your Project&lt;/strong&gt;&lt;/p&gt;

&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%2Fv7l3aldyd9im4pvvlzg9.png" 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%2Fv7l3aldyd9im4pvvlzg9.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;It Will Start The Dev server you Can Press CTRL and Click on The LocalHost It Will Open In Browser&lt;/strong&gt;&lt;/p&gt;

&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%2Fpelh9woqkk3ab6fb57a2.png" 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%2Fpelh9woqkk3ab6fb57a2.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 Boom! Your React app is live at&lt;/strong&gt; &lt;a href="http://localhost:5173/" rel="noopener noreferrer"&gt;&lt;code&gt;http://localhost:5173/&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Understanding The Structure Of Folder&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;index.html&lt;/code&gt; &lt;strong&gt;at root.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;src/&lt;/code&gt; &lt;strong&gt;- main React code.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;main.jsx&lt;/code&gt; &lt;strong&gt;(entry point).&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;App.jsx&lt;/code&gt; &lt;strong&gt;(root component).&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Thats All You Can Now Make Your Project As Per yours. I Recommend Always Use These Kind Of Tool To Accelarate Your Productivity. Vite is One Of Them The New Era Of Frontend Developement&lt;/strong&gt;
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Thanks For Reading My Article ❤️ and Also Share Your Thoughts in The Comments ☺️&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>react</category>
      <category>vite</category>
      <category>frontend</category>
      <category>productivity</category>
    </item>
    <item>
      <title>React Basics: An Introduction for Beginners</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Sun, 24 Aug 2025 17:23:20 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/react-basics-an-introduction-for-beginners-1738</link>
      <guid>https://dev.to/md_shahzebalam/react-basics-an-introduction-for-beginners-1738</guid>
      <description>&lt;h2&gt;
  
  
  What Is React ⚛︎
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;React is JavaScript Library Used For Building Web Apps. It Was Created by Meta In 2013&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why React ⚛︎
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;React is Fast and Efficient For Web Apps&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Huge Ecosystem and Community&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Its Easy to Learn If you Know JavaScript&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You don’t Have to Write Markup in HTML File You Can Write in JSX File&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Its Composable - Which Can Create Reuable and Interchangeable For Web Apps It Can Create Complex Systems&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  React is Declarative
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Declarative What does That Means Actually let’s First Understand Imperative&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imperative - Its Means How to Do Something let’s Understand From an Example If you go to Restaurant and You Tell The Manager That there is a table In the Corner Go Check the Table And Book it For Me.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Declarative - its Means Just Tell Something It Will Work You Don’t Gonna Know How These Work is Done So, again Lets Understand These Through an Similar Example Suppose if You Go to a Restaurant then Directly Tell The Manager to Book The Table For You You Don’t Know How The Work is Going on Under The Hood So Same Works In React You Just Tell The React To Make These Happen and It Will Happen You Don’t Know What Compexity is Going On Under The Hood .&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s Learn Now How To Code In React From Basics
&lt;/h2&gt;

&lt;p&gt;in HTML If You Want To Show &lt;strong&gt;&lt;em&gt;Hello World&lt;/em&gt;&lt;/strong&gt; in div How You Gonna Make It Like These&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Document&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"root"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello World&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Your Browser It Will Look Like These Inside Div &lt;em&gt;Hello World Is there&lt;/em&gt;&lt;/p&gt;

&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%2Fi9fx122ihs0wxkjyvmjy.png" 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%2Fi9fx122ihs0wxkjyvmjy.png" alt=" " width="800" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  But using JavaScript You Can Write These Like These
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;h1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;h1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;className&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;header&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  But In React
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You Have to Attach&lt;/strong&gt; &lt;code&gt;src&lt;/code&gt; &lt;strong&gt;in HTML File To Use React Like These&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt; &lt;span class="c"&gt;&amp;lt;!-- React and ReactDOM from unpkg --&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;script&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://unpkg.com/react@18/umd/react.development.js"&lt;/span&gt; &lt;span class="err"&gt;crossorigin&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;script&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://unpkg.com/react-dom@18/umd/react-dom.development.js"&lt;/span&gt; &lt;span class="err"&gt;crossorigin&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
 &lt;span class="c"&gt;&amp;lt;!-- Babel compiler (so you can write JSX directly in the browser) --&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;script&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://unpkg.com/@babel/standalone/babel.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In These Script Tag React DOM Is Doing The rendering Work Taking Your Component From React and Change Into JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Another Script Tag Babel Its Reloads The Browser After Bundling Your Files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now You Can Write Like These&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createRoot&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-dom/client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createRoot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nx"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Hello&lt;/span&gt; &lt;span class="nx"&gt;World&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;So Basically These is The Basic Way Of Doing The Same Usinge&lt;/strong&gt; &lt;code&gt;createRoot&lt;/code&gt; &lt;strong&gt;You Can Select The&lt;/strong&gt; &lt;code&gt;root&lt;/code&gt; &lt;strong&gt;Element From The&lt;/strong&gt; &lt;code&gt;div&lt;/code&gt; &lt;strong&gt;Inside The HTML.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;render&lt;/code&gt; &lt;strong&gt;Means appending The Element in The&lt;/strong&gt; &lt;code&gt;div&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are More Ways of Doing These But These is the Basics Of React If you are Starting to Learn React&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This Is It I Have Tried To Cover The Basics React&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Thanks For Reading My Article ❤️ and Also Share Your Thoughts in The Comments ☺️&lt;/strong&gt;
&lt;/h2&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Must-Have VS Code Extensions for Developers 🛠️</title>
      <dc:creator>Mohammad Shahzeb Alam</dc:creator>
      <pubDate>Thu, 21 Aug 2025 19:24:27 +0000</pubDate>
      <link>https://dev.to/md_shahzebalam/must-have-vs-code-extensions-for-developers-2j5l</link>
      <guid>https://dev.to/md_shahzebalam/must-have-vs-code-extensions-for-developers-2j5l</guid>
      <description>&lt;h2&gt;
  
  
  Why Extensions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Without extensions, VS Code is just a text editor. Extensions Supercharges Your Productivity. With extensions, it becomes a &lt;strong&gt;super editor&lt;/strong&gt;
&lt;/h3&gt;

&lt;h2&gt;
  
  
  There Are Lots Of Extensions In The Market Which Make You More Productive
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Productivity &amp;amp; Workflow&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tabnine / GitHub Copilot&lt;/strong&gt; - AI code completion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CodeSnap&lt;/strong&gt; - Take beautiful code screenshots for sharing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Code Quality &amp;amp; Linting&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ESLint&lt;/strong&gt; - Keeps JavaScript/TypeScript code clean.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prettier&lt;/strong&gt; - Automatic code formatting.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Styling &amp;amp; UI Enhancements&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Material Icon Theme&lt;/strong&gt; - Adds icons for files/folders.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dracula Official&lt;/strong&gt; - Themes for VS Code&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Debugging &amp;amp; Testing&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugger for Chrome&lt;/strong&gt; (Frontend debugging).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Thunder Client - For testing APIs directly in your VS Code&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  There are Lots of Extension In VS Code But These are The Mostly And Widely Used Extensions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Thanks For Reading My Article &lt;strong&gt;❤️ and Also Share Your Favorite Extensions in The Comment&lt;/strong&gt; ☺️
&lt;/h3&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
