<?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: Srijan Baniyal</title>
    <description>The latest articles on DEV Community by Srijan Baniyal (@srijanbaniyal).</description>
    <link>https://dev.to/srijanbaniyal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1192974%2F8cd38c9a-910e-4077-9861-f535a8f5eca4.jpeg</url>
      <title>DEV Community: Srijan Baniyal</title>
      <link>https://dev.to/srijanbaniyal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/srijanbaniyal"/>
    <language>en</language>
    <item>
      <title>Introducing Vyoma UI. My own Component Library Built on top of shadcn/ui.</title>
      <dc:creator>Srijan Baniyal</dc:creator>
      <pubDate>Mon, 28 Jul 2025 04:02:33 +0000</pubDate>
      <link>https://dev.to/srijanbaniyal/introducing-vyoma-ui-my-own-component-library-built-on-top-of-shadcnui-26kn</link>
      <guid>https://dev.to/srijanbaniyal/introducing-vyoma-ui-my-own-component-library-built-on-top-of-shadcnui-26kn</guid>
      <description>&lt;p&gt;Hey Devs 👋,&lt;/p&gt;

&lt;p&gt;I’ve been working on something small but useful — Vyoma UI, a beautiful component layer built on top of shadcn/ui, designed to help  reuse clean, production-ready UI patterns across projects.&lt;/p&gt;

&lt;p&gt;It’s still in v1, so nothing fancy just yet — mostly copy-paste components — but it’s shaping up nicely!&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;✨ What is Vyoma UI?&lt;/p&gt;

&lt;p&gt;Vyoma UI is basically a collection of Beautiful components I’ve Designed to the best standards. &lt;/p&gt;

&lt;p&gt;Right now, it’s just a bunch of components you can copy and paste into your own Shadcn/ui-based Next.js setup.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🧱 What’s Inside (So Far)&lt;br&gt;
    • Text Animations&lt;br&gt;
    • AI Component&lt;br&gt;
    • Backgrounds &lt;br&gt;
    • Card&lt;br&gt;
    • Accordion&lt;/p&gt;

&lt;p&gt;No npm package yet — just simple components you can grab and use.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🔧 What’s Coming Next&lt;/p&gt;

&lt;p&gt;I’m actively working on:&lt;br&gt;
    • 🧩 More components (stats, tables, settings layout, charts, etc.)&lt;br&gt;
    • 🛠️ A  Open in v0 version that’s easier to explore + use&lt;br&gt;
    • 🔗 CLI/Script support so you can add Vyoma components into your shadcn/ui setup&lt;br&gt;
    • 🎨 Theme-aware variants &amp;amp; presets&lt;/p&gt;

&lt;p&gt;Eventually, I want Vyoma UI to be a ShadCN-friendly layer you can plug into, without changing your dev flow.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;📂 Try It Out&lt;/p&gt;

&lt;p&gt;For now, just check out the GitHub repo and the OG website and copy-paste what you need:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/Srijan-Baniyal/vyoma-ui" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;&lt;br&gt;
🔗 &lt;a href="https://wwww.vyomaui.design" rel="noopener noreferrer"&gt;Hosted Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ll be updating it regularly, and once I hit a stable point, I’ll publish a package + docs.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🙌 Feedback Welcome&lt;/p&gt;

&lt;p&gt;If you’re into shadcn/ui components and want more prebuilt creative  UI patterns that just work, I’d love your thoughts, feedback, or contributions!&lt;/p&gt;

&lt;p&gt;If you want to read why I built Vyoma ui (vui). You can read my &lt;a href="https://blogs.srijanbaniyal.com/building-my-own-component-library-vyoma-ui" rel="noopener noreferrer"&gt;blog&lt;/a&gt; about it. &lt;/p&gt;

&lt;p&gt;Thanks for reading ✨&lt;br&gt;
Let’s build cool stuff together.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>shadcn</category>
      <category>react</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>Amazing React 19 Updates 🔥🔥😍...</title>
      <dc:creator>Srijan Baniyal</dc:creator>
      <pubDate>Wed, 29 May 2024 08:56:28 +0000</pubDate>
      <link>https://dev.to/srijanbaniyal/amazing-react-19-updates--4g5a</link>
      <guid>https://dev.to/srijanbaniyal/amazing-react-19-updates--4g5a</guid>
      <description>&lt;p&gt;&lt;strong&gt;ReactJS stands out as a leading UI library in the front-end development sphere, and my admiration for it is fueled by the dedicated team and the vibrant community that continually supports its growth.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;The prospects for React are filled with promise and intrigue. To distill it into a single line, one could simply state: 'Minimize Code, Maximize Functionality'.&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Throughout this blog, I aim to delve into the fresh elements introduced in React 19, enabling you to delve into new functionalities and grasp the evolving landscape.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please bear in mind that React 19 is currently undergoing development. Please Remember to refer the official guide on GitHub and follow the official team on social platforms to remain abreast of the most recent advancements.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;1.Overview of New Features in React 19&lt;br&gt;
2.React Compiler&lt;br&gt;
3.Server Components&lt;br&gt;
4.Actions&lt;br&gt;
5.Document Metadata&lt;br&gt;
6.Asset Loading&lt;br&gt;
7.Web Components&lt;br&gt;
8.New react Hooks&lt;br&gt;
9.Wanna Try Out React 19 🤔??  &lt;/p&gt;


&lt;h1&gt;
  
  
  ✨Overview of New Features in React 19✨
&lt;/h1&gt;

&lt;p&gt;Here's a brief rundown of the exciting new features that React 19 is set to bring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎨 React Compiler Breakthrough: React enthusiasts are eagerly anticipating the arrival of a cutting-edge compiler. Already in use by Instagram, this technology will soon be integrated into future React versions.&lt;/li&gt;
&lt;li&gt;🚀 Server Component Innovation: After years of development, React is unveiling server components, a groundbreaking advancement compatible with Next.js.&lt;/li&gt;
&lt;li&gt;🔬 Revolutionary DOM Interactions AKA Actions: Brace yourself for the game-changing impact of the new Actions feature on how we engage with DOM elements.&lt;/li&gt;
&lt;li&gt;📝 Streamlined Document Metadata: Expect a significant upgrade in enhancing developers' efficiency with a leaner code approach.&lt;/li&gt;
&lt;li&gt;🖼️ Efficient Assets Loading: Say goodbye to tedious loading times as React's new asset loading capability enhances both app load times and user experiences.&lt;/li&gt;
&lt;li&gt;⚙️ Web Component Integration: Excitingly, React code will seamlessly incorporate web components, opening up a world of possibilities for developers.&lt;/li&gt;
&lt;li&gt;🪝 Enhanced Hooks Ecosystem: Anticipate a wave of cutting-edge hooks coming your way soon, poised to transform the coding landscape.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;React 19 will address the persistent challenge of excessive re-renders in React development, enhancing performance by autonomously managing re-renders. This marks a shift from the manual use of useMemo(), useCallback(), and memo, resulting in cleaner and more efficient code and streamlining the development process.&lt;/p&gt;


&lt;h1&gt;
  
  
  🎨React Compiler🎨
&lt;/h1&gt;

&lt;p&gt;One common approach to optimizing these re-renders has been the manual use of useMemo(), useCallback(), and memo APIs. The React team initially considered this a "reasonable manual compromise" in their effort to delegate the management of re-renders to React.&lt;/p&gt;

&lt;p&gt;Recognizing the cumbersome nature of manual optimization and buoyed by community feedback, the React team set out to address this challenge. Hence, they introduced the "React compiler", which takes on the responsibility of managing re-renders. This empowers React to autonomously determine the appropriate methods and timing for updating state and refreshing the UI.&lt;/p&gt;

&lt;p&gt;As a result, developers are no longer required to perform these tasks manually, and the need for useMemo(), useCallback(), and memo is alleviated.&lt;/p&gt;

&lt;p&gt;As this functionality is set to be included in a future release of React, you can delve deeper into the details of the compiler by exploring the following sources:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=PYHBHK37xlE" rel="noopener noreferrer"&gt;React Compiler: In-Depth by Jack Herrington&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react.dev/learn/react-compiler" rel="noopener noreferrer"&gt;React Official Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Consequently, React will autonomously determine the optimization of components and the timing for the same, as well as make decisions on what needs to be re-rendered.&lt;/p&gt;


&lt;h1&gt;
  
  
  🚀Server Components🚀
&lt;/h1&gt;

&lt;p&gt;If you're not aware of server components, you're overlooking a remarkable Landmark of advancement in React and Next.js.&lt;/p&gt;

&lt;p&gt;Historically, React components predominantly operated on the client side. However, React is now disrupting the status quo by introducing the innovative notion of server-side component execution.&lt;/p&gt;

&lt;p&gt;The concept of server components has been a topic of discussion for years, with Next.js leading the charge by incorporating them into production. Beginning with Next.js 13, all components are automatically designated as server components. To execute a component on the client side, you must employ the "use client" directive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In React 19, the integration of server components within React presents &lt;br&gt;
a multitude of benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enhanced SEO: Server-rendered components elevate search engine optimization efforts by offering crawler-friendly content.&lt;/li&gt;
&lt;li&gt;Performance Enhancement: Server components play a pivotal role in accelerating initial page load times and enhancing performance, especially for content-rich applications.&lt;/li&gt;
&lt;li&gt;Server-Side Functionality: Leveraging server components facilitates the execution of code on the server side, streamlining processes such as API interactions for optimal efficiency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These advantages highlight the profound impact server components can have on advancing contemporary web development practices. &lt;/p&gt;

&lt;p&gt;In React, components are inherently designed for client-side execution. However, by employing the &lt;code&gt;"use server"&lt;/code&gt; directive as the initial line of a component, the code can be transformed into a server component. This adjustment ensures that the component operates exclusively on the server side and will not be executed on the client side.   &lt;/p&gt;


&lt;h1&gt;
  
  
  🔬Actions🔬
&lt;/h1&gt;

&lt;p&gt;In the upcoming version 19, the introduction of Actions promises to revolutionize form handling. This feature will enable seamless integration of actions with the &lt;code&gt;&amp;lt;form/&amp;gt;&lt;/code&gt; HTML tag, essentially replacing the traditional &lt;code&gt;onSubmit&lt;/code&gt; event with HTML form attributes.  &lt;/p&gt;
&lt;h2&gt;
  
  
  Before Actions
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;form onSubmit={search}&amp;gt;
  &amp;lt;input name="query" /&amp;gt;
  &amp;lt;button type="submit"&amp;gt;Search&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  After Actions
&lt;/h2&gt;

&lt;p&gt;With the debut of server components, Actions now have the capability to be executed on the server side. Within our JSX, through the tag, we can go for the &lt;code&gt;onSubmit&lt;/code&gt;event and instead incorporate the action attribute. This attribute will encompass a method for submitting data, whether it be on the client or server side.&lt;br&gt;
Actions empower the execution of both synchronous and asynchronous operations, simplifying data submission management and state updates. The primary objective is to streamline form handling and data manipulation, seeking to enhance overall user experience.&lt;/p&gt;

&lt;p&gt;Shall we explore an example to gain a better understanding of this functionality?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"use server"

const submitData = async (userData) =&amp;gt; {
    const newUser = {
        username: userData.get('username'),
        email: userData.get('email')
    }
    console.log(newUser)
}

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const Form = () =&amp;gt; {
    return &amp;lt;form action={submitData}&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;label&amp;gt;Name&amp;lt;/label&amp;gt;
            &amp;lt;input type="text" name='username'/&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;label&amp;gt;Name&amp;lt;/label&amp;gt;
            &amp;lt;input type="text" name="email" /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;button type='submit'&amp;gt;Submit&amp;lt;/button&amp;gt;
    &amp;lt;/form&amp;gt;
}

export default Form;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the provided code snippet, &lt;code&gt;submitData&lt;/code&gt; functions as the action within the server component, while &lt;code&gt;form&lt;/code&gt; serves as the client-side component utilizing &lt;code&gt;submitData&lt;/code&gt; as the designated action. Significantly, &lt;code&gt;submitData&lt;/code&gt; will execute exclusively on the server side. This seamless communication between the &lt;code&gt;client (form)&lt;/code&gt; and server &lt;code&gt;(submitData)&lt;/code&gt; components is facilitated solely through the action attribute.  &lt;/p&gt;




&lt;h1&gt;
  
  
  📝Document Metadata📝
&lt;/h1&gt;

&lt;p&gt;The inclusion of elements like &lt;code&gt;title, meta tags and description&lt;/code&gt; is essential for maximizing SEO impact and ensuring accessibility. Within the React environment, especially prevalent in single-page applications, the task of coordinating these elements across different routes can present a significant hurdle.&lt;/p&gt;

&lt;p&gt;Typically, developers resort to crafting intricate custom solutions or leveraging external libraries like react-helmet to orchestrate seamless route transitions and dynamically update metadata. Yet, this process can become tedious and error-prone, particularly when handling crucial SEO elements such as meta tags.  &lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
&lt;/p&gt;

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

const HeadDocument = ({ title }) =&amp;gt; {
  useEffect(() =&amp;gt; {
    document.title = title;

    const metaDescriptionTag = document.querySelector('meta[name="description"]');
    if (metaDescriptionTag) {
    metaDescriptionTag.setAttribute('content', 'New description');
    }
  }, [title]);

  return null;
};

export default HeadDocument;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The provided code features a &lt;code&gt;HeadDocument&lt;/code&gt; component tasked with dynamically updating the &lt;code&gt;title&lt;/code&gt; and &lt;code&gt;meta tags&lt;/code&gt; based on the given props within the &lt;code&gt;useEffect&lt;/code&gt; hook. This involves utilizing JavaScript to facilitate these updates, ensuring that the component is refreshed upon route changes. &lt;u&gt;However, this methodology may not be considered the most elegant solution for addressing this requirement.&lt;br&gt;
&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;p&gt;Through React 19, we have the ability to directly incorporate title and meta tags within our React components:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Const HomePage = () =&amp;gt; {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;title&amp;gt;Freecodecamp&amp;lt;/title&amp;gt;
      &amp;lt;meta name="description" content="Freecode camp blogs" /&amp;gt;
      // Page content
    &amp;lt;/&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was not possible before in React. The only way was to use a package like react-helmet.&lt;/p&gt;




&lt;h1&gt;
  
  
  🖼️Asset Loading🖼️
&lt;/h1&gt;

&lt;p&gt;In React, optimizing the loading experience and performance of applications, especially with images and asset files, is crucial.&lt;/p&gt;

&lt;p&gt;Traditionally, there can be a flicker from unstyled to styled content as the view loads items like stylesheets, fonts, and images. Developers often implement custom solutions to ensure all assets are loaded before displaying the view.&lt;/p&gt;

&lt;p&gt;In React 19, images and files will load in the background as users navigate the current page, reducing waiting times and enhancing page load speed. The introduction of lifecycle Suspense for asset loading, including scripts and fonts, allows React to determine when content is ready to prevent any unstyled flickering.&lt;/p&gt;

&lt;p&gt;New &lt;a href="https://react.dev/reference/react-dom#resource-preloading-apis" rel="noopener noreferrer"&gt;Resource Loading APIs&lt;/a&gt; like &lt;code&gt;preload&lt;/code&gt; and &lt;code&gt;preinit&lt;/code&gt; offer increased control over when resources load and initialize. With assets loading asynchronously in the background, React 19 optimizes performance, providing a seamless and uninterrupted user experience.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚙️Web Components⚙️
&lt;/h1&gt;

&lt;p&gt;Two years ago, I ventured into the realm of web components and became enamored with their potential. Let me provide you with an overview:&lt;/p&gt;

&lt;p&gt;Web components empower you to craft custom components using native HTML, CSS, and JavaScript, seamlessly integrating them into your web applications as if they were standard HTML tags. Isn't that remarkable?&lt;/p&gt;

&lt;p&gt;Presently, integrating web components into React poses challenges. Typically, you either need to convert the web component to a React component or employ additional packages and code to make them compatible with React. This can be quite frustrating.&lt;/p&gt;

&lt;p&gt;However, the advent of React 19 brings promising news for integrating web components into React with greater ease. This means that if you encounter a highly valuable web component, such as a carousel, you can seamlessly incorporate it into your React projects without the need for conversion into React code.&lt;/p&gt;

&lt;p&gt;This advancement streamlines development and empowers you to harness the extensive ecosystem of existing web components within your React applications.&lt;/p&gt;

&lt;p&gt;While specific implementation details are not yet available, I am optimistic that it may involve simply importing a web component into a React codebase, akin to module federation. I eagerly anticipate further insights from the React team on this integration.  &lt;/p&gt;

&lt;h1&gt;
  
  
  🪝New React Hooks🪝
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;React Hooks have solidified their place as a beloved feature within the React library. Chances are you've embraced React's standard hooks frequently and maybe even ventured into creating your unique custom hooks. These hooks have gained such widespread acclaim that they have evolved into a prevalent programming methodology within the React community.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the upcoming release of React 19, the utilization of &lt;code&gt;useMemo&lt;/code&gt;, &lt;code&gt;forwardRef&lt;/code&gt;, &lt;code&gt;useEffect&lt;/code&gt; and &lt;code&gt;useContext&lt;/code&gt; is poised for transformation. This shift is primarily driven by the impending introduction of a novel hook, named &lt;strong&gt;&lt;em&gt;use&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;useMemo()&lt;/code&gt;:
&lt;/h2&gt;

&lt;p&gt;You won't need to use the &lt;code&gt;useMemo()&lt;/code&gt; hook after React19, as React Compiler will memoize by itself.&lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
&lt;/p&gt;

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

function ExampleComponent() {
  const [inputValue, setInputValue] = useState('');

  // Memoize the result of checking if the input value is empty
  const isInputEmpty = useMemo(() =&amp;gt; {
    console.log('Checking if input is empty...');
    return inputValue.trim() === '';
  }, [inputValue]);

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;input
        type="text"
        value={inputValue}
        onChange={(e) =&amp;gt; setInputValue(e.target.value)}
        placeholder="Type something..."
      /&amp;gt;
      &amp;lt;p&amp;gt;{isInputEmpty ? 'Input is empty' : 'Input is not empty'}&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default ExampleComponent;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After:&lt;/p&gt;

&lt;p&gt;In the below example, you can see that after React19, we don't need to memo the values – React19 will do it by itself under the hood. The code is much cleaner:&lt;br&gt;
&lt;/p&gt;

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

function ExampleComponent() {
  const [inputValue, setInputValue] = useState('');

  const isInputEmpty = () =&amp;gt; {
    console.log('Checking if input is empty...');
    return inputValue.trim() === '';
  });

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;input
        type="text"
        value={inputValue}
        onChange={(e) =&amp;gt; setInputValue(e.target.value)}
        placeholder="Type something..."
      /&amp;gt;
      &amp;lt;p&amp;gt;{isInputEmpty ? 'Input is empty' : 'Input is not empty'}&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default ExampleComponent;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;code&gt;forwardRef()&lt;/code&gt;:
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;ref&lt;/code&gt; will be now passed as props rather than using the &lt;code&gt;forwardRef()&lt;/code&gt; hook. This will simplify the code. So after React 19, you won't need to use &lt;code&gt;forwardRef()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
&lt;/p&gt;

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

const ExampleButton = forwardRef((props, ref) =&amp;gt; (
  &amp;lt;button ref={ref}&amp;gt;
    {props.children}
  &amp;lt;/button&amp;gt;
));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ref&lt;/code&gt; can be passed as a "prop". No more &lt;code&gt;forwardRef()&lt;/code&gt; is required.&lt;br&gt;
&lt;/p&gt;

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

const ExampleButton = ({ ref, children }) =&amp;gt; (
  &amp;lt;button ref={ref}&amp;gt;
    {children}
  &amp;lt;/button&amp;gt;
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The new &lt;code&gt;use()&lt;/code&gt; hook
&lt;/h2&gt;

&lt;p&gt;React 19 will introduce a new hook called &lt;code&gt;use()&lt;/code&gt;. This hook will simplify how we use promises, async code, and context.&lt;/p&gt;

&lt;p&gt;Here is the syntax of hook:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const value = use(resource);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The below code is an example of how you can use the &lt;code&gt;use()&lt;/code&gt; hook to make a &lt;code&gt;fetch&lt;/code&gt; request:&lt;br&gt;
&lt;/p&gt;

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

const fetchUsers = async () =&amp;gt; {
    const res = await fetch('https://jsonplaceholder.typicode.com/users');
    return res.json();
  };

  const UsersItems = () =&amp;gt; {
    const users = use(fetchUsers());

    return (
      &amp;lt;ul&amp;gt;
        {users.map((user) =&amp;gt; (
          &amp;lt;div key={user.id} className='bg-blue-50 shadow-md p-4 my-6 rounded-lg'&amp;gt;
            &amp;lt;h2 className='text-xl font-bold'&amp;gt;{user.name}&amp;lt;/h2&amp;gt;
            &amp;lt;p&amp;gt;{user.email}&amp;lt;/p&amp;gt;
          &amp;lt;/div&amp;gt;
        ))}
      &amp;lt;/ul&amp;gt;
    );
  }; 
export default UsersItems;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's understand the code: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The function &lt;code&gt;fetchUsers&lt;/code&gt; handles the &lt;code&gt;GET&lt;/code&gt; request operation.&lt;/li&gt;
&lt;li&gt;Instead of employing the &lt;code&gt;useEffect&lt;/code&gt; or &lt;code&gt;useState&lt;/code&gt; hooks, we utilize the use hook to execute &lt;code&gt;fetchUsers&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The outcome of the &lt;code&gt;useState&lt;/code&gt; hook, referred to as users, stores the response obtained from the &lt;code&gt;GET&lt;/code&gt; request (users).&lt;/li&gt;
&lt;li&gt;Within the return section, we leverage users to iterate through and construct the list.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Another area where the new hook can be utilized is with Context. The Context API is widely adopted for global state management in React, eliminating the need for external state management libraries. With the introduction of the &lt;code&gt;use&lt;/code&gt; hook, the &lt;code&gt;context&lt;/code&gt; hook will be represented as follows:&lt;/p&gt;

&lt;p&gt;Instead of employing &lt;code&gt;useContext()&lt;/code&gt;, we will now utilize &lt;code&gt;use(context)&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;import { createContext, useState, use } from 'react';

const ThemeContext = createContext();

const ThemeProvider = ({ children }) =&amp;gt; {
  const [theme, setTheme] = useState('light');

  const toggleTheme = () =&amp;gt; {
    setTheme((prevTheme) =&amp;gt; (prevTheme === 'light' ? 'dark' : 'light'));
  };

  return (
    &amp;lt;ThemeContext.Provider value={{ theme, toggleTheme }}&amp;gt;
      {children}
    &amp;lt;/ThemeContext.Provider&amp;gt;
  );
};

const Card = () =&amp;gt; {
  // use Hook()
  const { theme, toggleTheme } = use(ThemeContext);

  return (
    &amp;lt;div
      className={`p-4 rounded-md ${
        theme === 'light' ? 'bg-white' : 'bg-gray-800'
      }`}
    &amp;gt;
      &amp;lt;h1
        className={`my-4 text-xl ${
          theme === 'light' ? 'text-gray-800' : 'text-white'
        }`}
      &amp;gt;
        Theme Card
      &amp;lt;/h1&amp;gt;
      &amp;lt;p className={theme === 'light' ? 'text-gray-800' : 'text-white'}&amp;gt;
       Hello!! use() hook
      &amp;lt;/p&amp;gt;
      &amp;lt;button
        onClick={toggleTheme}
        className='bg-blue-500 hover:bg-blue-600 text-white rounded-md mt-4 p-4'
      &amp;gt;
        {theme === 'light' ? 'Switch to Dark Mode' : 'Switch to Light Mode'}
      &amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

const Theme = () =&amp;gt; {
  return (
    &amp;lt;ThemeProvider&amp;gt;
      &amp;lt;Card /&amp;gt;
    &amp;lt;/ThemeProvider&amp;gt;
  );
};

export default Theme
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The component &lt;code&gt;ThemeProvider&lt;/code&gt; is responsible for providing the context, while the component &lt;code&gt;card&lt;/code&gt; is where we will consume the &lt;code&gt;context&lt;/code&gt; using the new hook, &lt;code&gt;use&lt;/code&gt;. The remaining structure of the code remains unchanged from before React 19.&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;code&gt;useFormStatus()&lt;/code&gt; hook:
&lt;/h2&gt;

&lt;p&gt;The new hook introduced in React 19 will provide enhanced control over the forms you develop, offering status updates regarding the most recent form submission.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const {pending, action , data , method } = useFormStatus()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or the Simpler version&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const {status} = useFormStatus()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This hook provides the following information:&lt;/p&gt;

&lt;p&gt;1."pending": Indicates if the form is currently in a pending state, yielding true if so, and false otherwise.&lt;br&gt;
2."data": Represents an object conforming to the FormData interface, encapsulating the data being submitted by the parent.&lt;br&gt;
3."method": Denotes the HTTP method, defaulting to GET unless specified otherwise.&lt;br&gt;
4."action": A reference to an Action&lt;/p&gt;

&lt;p&gt;This hook serves the purpose of displaying the pending state and the data being submitted by the user.&lt;br&gt;
&lt;/p&gt;

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

function Submit() {
  const status = useFormStatus();
  return &amp;lt;button disabled={status.pending}&amp;gt;{status.pending ? 'Submitting...' : 'Submit'}&amp;lt;/button&amp;gt;;
}

const formAction = async () =&amp;gt; {
  // Simulate a delay of 2 seconds
  await new Promise((resolve) =&amp;gt; setTimeout(resolve, 3000));
}

const FormStatus = () =&amp;gt; {
  return (
    &amp;lt;form action={formAction}&amp;gt;
      &amp;lt;Submit /&amp;gt;
    &amp;lt;/form&amp;gt;
  );
};

export default FormStatus;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the provided code snippet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;Submit&lt;/code&gt; method serves as the action to submit the form. It utilizes the status retrieved from &lt;code&gt;useFormStatus&lt;/code&gt; to determine the value of &lt;code&gt;status.pending&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;This &lt;code&gt;status.pending&lt;/code&gt; value is used to dynamically display messages on the UI based on its true or false state.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;formAction&lt;/code&gt; method, a fake method, is employed to simulate a delay in form submission.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Through this implementation, upon form submission, the &lt;code&gt;useFormStatus&lt;/code&gt; hook tracks the pending status. While the status is &lt;code&gt;pending (true)&lt;/code&gt;, the UI displays "Submitting..."; once the pending state transitions to false, the message adjusts to "Submitted".&lt;/p&gt;

&lt;p&gt;This hook proves to be robust and beneficial for monitoring form submission status and facilitating appropriate data display based on the status.&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;code&gt;useFormState()&lt;/code&gt; hook
&lt;/h2&gt;

&lt;p&gt;Another new hook in the React 19 is &lt;code&gt;UseFormState()&lt;/code&gt;. It allows you to update state based on the result of form submission.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const [state,formaction] = UseFormState(fn,initialState,permalink?);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;1.&lt;code&gt;fn&lt;/code&gt;: The function to be called when the form is submitted or the button is pressed.&lt;br&gt;
2.&lt;code&gt;initalstate&lt;/code&gt;: The value you want the state to be initially. It can be any serialized value. This argument is ignored after the action is first ignored after the action is first invoked.&lt;br&gt;
3.&lt;code&gt;permalink&lt;/code&gt;: This is optional. A URL or page link, if &lt;code&gt;fn&lt;/code&gt; is going to be run on the server then the page will redirect to &lt;code&gt;permalink&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This hook will return:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;state&lt;/code&gt;: The initial state will be the value we have passed to &lt;code&gt;initialState&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;formAction&lt;/code&gt;: An action that will be passed to the form action. the Return value of this will be available in the state.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useFormState} from 'react-dom';

const FormState = () =&amp;gt; {
    const submitForm = (prevState, queryData) =&amp;gt; {
        const name =  queryData.get("username");
        console.log(prevState); // previous form state
        if(name === "Srijan"){
            return {
                success: true,
                text: "Welcome"
            }
        }
        else{
            return {
                success: false,
                text: "Error"
            }
        }
    }
    const [ message, formAction ] = useFormState(submitForm, null)
    return &amp;lt;form action={formAction}&amp;gt;
        &amp;lt;label&amp;gt;Name&amp;lt;/label&amp;gt;
        &amp;lt;input type="text" name="username" /&amp;gt;
        &amp;lt;button&amp;gt;Submit&amp;lt;/button&amp;gt;
        {message &amp;amp;&amp;amp; &amp;lt;h1&amp;gt;{message.text}&amp;lt;/h1&amp;gt;}
    &amp;lt;/form&amp;gt;
}

export default FormState;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Understanding the Code given above:&lt;/p&gt;

&lt;p&gt;1.&lt;code&gt;submitForm&lt;/code&gt; is the method responsible for the form submission. This is the Action {remember Action is new feature in React 19}.&lt;/p&gt;

&lt;p&gt;2.Inside &lt;code&gt;submitForm&lt;/code&gt;, we are checking the value of the form. Then, depending on whether it's successful or shows an error, we return the specific value and message. In the above code example , if there is any value other than "Srijan", then it will return an error.&lt;br&gt;
3.We can also check the &lt;code&gt;pervState&lt;/code&gt; of the form. The initial state would be &lt;code&gt;null&lt;/code&gt;, and after that it will return the &lt;code&gt;prevState&lt;/code&gt; of the form.&lt;/p&gt;

&lt;p&gt;On running this example, you will see a "welcome" message if the name is Srijan - otherwise it will return "error".&lt;/p&gt;
&lt;h2&gt;
  
  
  The &lt;code&gt;useOptimistic()&lt;/code&gt; hook :
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;useOptimistic&lt;/code&gt; is a React Hook that lets you show a different state while a sync action is underway, according to the React docs.&lt;/p&gt;

&lt;p&gt;This hook will help enhance the user experiences and should result in faster responses. This will be useful for application that need to interact with the server. &lt;/p&gt;

&lt;p&gt;Syntax:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const [optimisticMessage,addOptimisticMessage] = useOptimistic(state,updatefn)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For instance, when a response is being processed, an immediate "state" can be displayed to provide the user with prompt feedback. Once the actual response is received from the server, the "optimistic" state will be replaced by the authentic result.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;useOptimistic&lt;/code&gt; hook facilitates an immediate update of the UI under the assumption that the request will succeed. This naming reflects the "optimistic" presentation of a successful action to the user, despite the actual action taking time to complete.&lt;/p&gt;

&lt;p&gt;Now, let's explore how we can incorporate the &lt;code&gt;useOptimistic&lt;/code&gt; hook. The code below showcases the display of an optimistic state upon clicking the submit button in a (e.g., "Sending..."), persisting until the response is received.&lt;br&gt;
&lt;/p&gt;

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

const Optimistic = () =&amp;gt; {
  const [messages, setMessages] = useState([
    { text: "Hey, I am initial!", sending: false, key: 1 },
  ]);
  const [optimisticMessages, addOptimisticMessage] = useOptimistic(
    messages,
    (state, newMessage) =&amp;gt; [
      ...state,
      {
        text: newMessage,
        sending: true,
      },
    ]
  );

  async function sendFormData(formData) {
    const sentMessage = await fakeDelayAction(formData.get("message"));
    setMessages((messages) =&amp;gt; [...messages, { text: sentMessage }]);
  }

  async function fakeDelayAction(message) {
    await new Promise((res) =&amp;gt; setTimeout(res, 1000));
    return message;
  }

  const submitData = async (userData) =&amp;gt; {
    addOptimisticMessage(userData.get("username"));

    await sendFormData(userData);
  };

  return (
    &amp;lt;&amp;gt;
      {optimisticMessages.map((message, index) =&amp;gt; (
        &amp;lt;div key={index}&amp;gt;
          {message.text}
          {!!message.sending &amp;amp;&amp;amp; &amp;lt;small&amp;gt; (Sending...)&amp;lt;/small&amp;gt;}
        &amp;lt;/div&amp;gt;
      ))}
      &amp;lt;form action={submitData}&amp;gt;
        &amp;lt;h1&amp;gt;OptimisticState Hook&amp;lt;/h1&amp;gt;
        &amp;lt;div&amp;gt;
          &amp;lt;label&amp;gt;Username&amp;lt;/label&amp;gt;
          &amp;lt;input type="text" name="username" /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;button type="submit"&amp;gt;Submit&amp;lt;/button&amp;gt;
      &amp;lt;/form&amp;gt;
    &amp;lt;/&amp;gt;
  );
};

export default Optimistic;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;The method &lt;code&gt;fakeDelayAction&lt;/code&gt; serves as a simulated delay mechanism to mimic the submit event delay, showcasing the optimistic state conceptually.
2.&lt;code&gt;submitData&lt;/code&gt; acts as the action responsible for submitting the form. It can potentially include asynchronous operations as well.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sendFormData&lt;/code&gt; is tasked with transmitting the form data to &lt;code&gt;fakeDelayAction&lt;/code&gt; for processing. 
4.Initialize the default state where the &lt;code&gt;messages&lt;/code&gt; attribute is designated for input within the &lt;code&gt;useOptimistic()&lt;/code&gt; function, ultimately returned as &lt;code&gt;optimisticMessages&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;const [messages, setMessages] = useState([{ text: "Hey, I am initial!", sending: false, key: 1 },]);&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now , let's get into more details:&lt;/p&gt;

&lt;p&gt;Inside &lt;code&gt;submitData&lt;/code&gt; , we are using &lt;code&gt;addOptimisticMessage&lt;/code&gt;.This will add the form data so that it will be available in &lt;code&gt;optimisticMessage&lt;/code&gt;. We will use this to show a message in the UI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{optimisticMessages.map((message, index) =&amp;gt; (
        &amp;lt;div key={index}&amp;gt;
          {message.text}
          {!!message.sending &amp;amp;&amp;amp; &amp;lt;small&amp;gt; (Sending...)&amp;lt;/small&amp;gt;}
        &amp;lt;/div&amp;gt;
      ))}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Wanna Try Out React 19 🤔 ?
&lt;/h1&gt;

&lt;p&gt;Presently, the aforementioned features are accessible in the canary release. Further information can be found &lt;a href="https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024" rel="noopener noreferrer"&gt;here&lt;/a&gt;. As advised by the React team, refrain from using these features for customer or user-facing applications at this time. You are welcome to explore and experiment with them for personal learning or recreational purposes.  &lt;/p&gt;

&lt;p&gt;If you're eager to know the release date of React 19, you can stay informed by monitoring the Canary Releases for updates. Keep abreast of the latest developments by following the React team on their &lt;a href="https://react.dev" rel="noopener noreferrer"&gt;official website&lt;/a&gt;, &lt;a href="https://react.dev/community/team" rel="noopener noreferrer"&gt;team channels&lt;/a&gt;, &lt;a href="https://github.com/facebook/react" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://react.dev/blog/2023/05/03/react-canaries" rel="noopener noreferrer"&gt;Canary Releases&lt;/a&gt;.  &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Hacking October Fest or HacktoberFest</title>
      <dc:creator>Srijan Baniyal</dc:creator>
      <pubDate>Fri, 27 Oct 2023 16:36:47 +0000</pubDate>
      <link>https://dev.to/srijanbaniyal/hacking-october-fest-or-hacktoberfest-nm4</link>
      <guid>https://dev.to/srijanbaniyal/hacking-october-fest-or-hacktoberfest-nm4</guid>
      <description>&lt;p&gt;Hi there! This is my Actually First Real Post on Dev.to I'm kind of excited for this...&lt;br&gt;
Ok now let's get on the topic.&lt;/p&gt;

&lt;p&gt;As we all know October is the month of Hackathon. I decided to participate in HacktoberFest 2023 and MLH {Major League Hacking}.&lt;br&gt;
We all know The HacktoberFest Challenge. You have to Merge your 4 PR {Pull Request} successfully without violating the guidelines. If you get 2 spams PR, you are disqualified from the HacktoberFest.&lt;/p&gt;

&lt;p&gt;And the Rewards for the HacktoberFest was: -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You get Virtual Badges on Holopin.&lt;/li&gt;
&lt;li&gt;When your first PR get merged you get to plant a tree and you get a badge on Holopin.&lt;/li&gt;
&lt;li&gt;When your 4 PR get merged and verified. You get a Reward Kit. And again, lots of badges in Holopin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might not be familiar with the MLH. It's an organization which organizes Events throughout the year related to Hacking. In the Web industry "Hacking" means creating new things. {This is what I have inferred}. Click on &lt;a href="https://ghw.mlh.io/" rel="noopener noreferrer"&gt;this&lt;/a&gt; link to visit their website. &lt;/p&gt;

&lt;p&gt;During the third week. The event Open-Source-Challenge Started {it's now removed from the Website. And occurs every year}. I had to just complete 3 main challenges. And there were many Events going on in it. For example: -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Game Dev with Dimmer&lt;/li&gt;
&lt;li&gt;Today in Open Source&lt;/li&gt;
&lt;li&gt;Invoice Generation App&lt;/li&gt;
&lt;li&gt;And many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By completing the 3 main challenges. You get a mail from them that you have unlocked the basic swag which included stickers, Post Card and Hex Sticker. You can go to the &lt;a href="https://ghw.mlh.io/swag" rel="noopener noreferrer"&gt;Swag Section&lt;/a&gt; to checkout more on it.&lt;/p&gt;

&lt;p&gt;My experience was &lt;strong&gt;amazing&lt;/strong&gt; in the HacktoberFest and MLH Global hack Week.&lt;/p&gt;

&lt;p&gt;You can also share your thoughts and experiences. I'll like to hear from all of you. &lt;/p&gt;

</description>
      <category>hacktoberfest23</category>
      <category>hacktoberfest</category>
      <category>discuss</category>
      <category>about</category>
    </item>
    <item>
      <title>Completed My Hacktoberfest Challenge</title>
      <dc:creator>Srijan Baniyal</dc:creator>
      <pubDate>Fri, 27 Oct 2023 15:46:07 +0000</pubDate>
      <link>https://dev.to/srijanbaniyal/completed-my-hacktoberfest-challenge-1p7b</link>
      <guid>https://dev.to/srijanbaniyal/completed-my-hacktoberfest-challenge-1p7b</guid>
      <description>&lt;p&gt;These are My 4 Contributions on Hacktoberfest that are :-&lt;/p&gt;

&lt;p&gt;1.&lt;a href="https://github.com/Aditya-devp/Contributershub/pull/107" rel="noopener noreferrer"&gt;First Contribution&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;a href="https://github.com/pawarspeaks/TechNexus/pull/17" rel="noopener noreferrer"&gt;Second Contribution&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.&lt;a href="https://github.com/pawarspeaks/TechNexus/pull/23" rel="noopener noreferrer"&gt;Third Contribution&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.&lt;a href="https://github.com/Aditya-devp/Contributershub/pull/124" rel="noopener noreferrer"&gt;Fourth Contribution&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have ensured that my GitHub Account matches my HacktoberFest Profile.&lt;/p&gt;

</description>
      <category>hack23contributor</category>
    </item>
  </channel>
</rss>
