<?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: Vidit Kushwaha </title>
    <description>The latest articles on DEV Community by Vidit Kushwaha  (@viditkushwaha).</description>
    <link>https://dev.to/viditkushwaha</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%2F921692%2F63208ab4-8294-4448-b75d-0b6a69b14e43.jpg</url>
      <title>DEV Community: Vidit Kushwaha </title>
      <link>https://dev.to/viditkushwaha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/viditkushwaha"/>
    <language>en</language>
    <item>
      <title>Published my first npm package: react-popupify!</title>
      <dc:creator>Vidit Kushwaha </dc:creator>
      <pubDate>Wed, 03 Jul 2024 08:06:00 +0000</pubDate>
      <link>https://dev.to/viditkushwaha/react-popupify-simplify-popup-management-in-your-react-apps-4109</link>
      <guid>https://dev.to/viditkushwaha/react-popupify-simplify-popup-management-in-your-react-apps-4109</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2Fm6t3dQc%2Fdownload-1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2Fm6t3dQc%2Fdownload-1.gif" alt="GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is &lt;code&gt;react-popupify&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-popupify" rel="noopener noreferrer"&gt;&lt;code&gt;React-Popupify&lt;/code&gt;&lt;/a&gt; is a simple and easy to use popup component library for Reactjs applications. It manages popups using a singleton pattern with a central popup manager instead relies on a global manager to handle popups.&lt;/p&gt;

&lt;p&gt;JavaScript's default alert, confirm, and prompt dialogues have long served as a standard for simplicity. However, they suffer from several UI inconsistencies, especially when integrated into modern web applications with custom styling and user interfaces. These inconsistencies can lead to a jarring user experience, disrupting the overall aesthetic and feel of the application. &lt;/p&gt;

&lt;p&gt;To address these issues, react-popupify come into place, a React library designed to provide consistent and customizable popup dialogs. With feature like controlled visibility and customizable behavior to support for transitions and focus management, the library addresses many common needs when working with popups and modals, ensuring a smooth and accessible user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy to Use&lt;/strong&gt;: Simple API for quick integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Highly Customizable&lt;/strong&gt;: Customizable transitions, styles, and behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Animations&lt;/strong&gt;: Supports various animation types such as &lt;code&gt;bounce&lt;/code&gt;, &lt;code&gt;flip&lt;/code&gt;, &lt;code&gt;zoom&lt;/code&gt;, and &lt;code&gt;fade&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Close&lt;/strong&gt;: Option to auto-close the popup after a specified duration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event Handlers&lt;/strong&gt;: Callbacks for when the popup is entered and exited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Esc Key and Outside Click&lt;/strong&gt;: Configurable options to close the popup using the escape key or clicking outside.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component-Based&lt;/strong&gt;: Built with modern React principles and practices.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;You can install react-popupify via npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;react-popupify
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Using react-popupify is straightforward. Here's a quick guide to get you started:&lt;/p&gt;

&lt;p&gt;1 &lt;strong&gt;Adding CSS&lt;/strong&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-popupify/dist/bundle.css&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;2 &lt;strong&gt;Create Popup Components&lt;/strong&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;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&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;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Popup&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="s1"&gt;react-popupify&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;CustomPopup&lt;/span&gt; &lt;span class="o"&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="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;Popup&lt;/span&gt;
            &lt;span class="na"&gt;popupId&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"customPopupId"&lt;/span&gt;
            &lt;span class="na"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"bounce"&lt;/span&gt;
            &lt;span class="na"&gt;open&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="na"&gt;closeOnEscape&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="na"&gt;closeOnOutsideClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="na"&gt;closeButton&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          Say Hello to React-Poupify !!
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Popup&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;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;CustomPopup&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3 &lt;strong&gt;Import CustomPopup into to root of your project&lt;/strong&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;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&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;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&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="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;// importing custom popup to root of project&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CustomProject&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;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4 &lt;strong&gt;Display Popups&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use the &lt;code&gt;showPopup&lt;/code&gt; instance to show popups:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&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="s1"&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;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;showPopup&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="s1"&gt;react-popupify&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;PopupButton&lt;/span&gt;&lt;span class="o"&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;popup&lt;/span&gt; &lt;span class="o"&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="nf"&gt;showPopup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;customPopupId&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="na"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&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="nt"&gt;div&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="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;popup&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Show Popup!&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&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="nt"&gt;div&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;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;PopupButton&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;I welcome contributions to &lt;a href="https://www.npmjs.com/package/react-popupify" rel="noopener noreferrer"&gt;react-popupify&lt;/a&gt;. If you have ideas for new features, improvements, or bug fixes, feel free to open an issue or submit a pull request on GitHub.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/Vidit-Kushwaha/react-popupify" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; for more details, and don't forget to ⭐ star the project if you like it!&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>react</category>
      <category>npm</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Git &amp; GitHub Essentials: Understanding Version Control and Collaboration</title>
      <dc:creator>Vidit Kushwaha </dc:creator>
      <pubDate>Thu, 23 May 2024 12:05:48 +0000</pubDate>
      <link>https://dev.to/viditkushwaha/git-github-essentials-understanding-version-control-and-collaboration-2ldm</link>
      <guid>https://dev.to/viditkushwaha/git-github-essentials-understanding-version-control-and-collaboration-2ldm</guid>
      <description>&lt;h2&gt;
  
  
  Version Control
&lt;/h2&gt;

&lt;p&gt;Imagine Doctor Strange casting spells and constantly modifying reality (the code) to defeat a foe (a bug). Unlike the film's time loop, Strange (the developers) must keep track of the changes. That's a subtle way of introducing version control, so let's describe it as a system for tracking and managing changes to code or other collections of files. It enables many individuals to work on the same project without overwriting each other's modifications, and it includes a method for reverting to prior versions of the project if necessary.&lt;/p&gt;

&lt;p&gt;There are some tools that provide version control.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Git:&lt;/strong&gt; It’s distributed version control system that allows multiple people to work on a project at the same time without overwriting each other's changes. It is a popular choice among software developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subversion (SVN)&lt;/strong&gt;: It’s a centralized version control system that keeps all the versioned files in a central repository. Often used for large-scale projects where centralized system is preferred.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Perforce&lt;/strong&gt;: It’s a version control system that is designed for large-scale software development projects. It offers features such as atomic commits, branching and merging, and access control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google uses its own version control system called Piper, which is a centralized version control tool. Piper is a renowned version control tool that Google uses as a vast repository, distributed over around ten Google data centers.&lt;/p&gt;

&lt;p&gt;There are several hosting platforms available for version control systems. Here are a few popular ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: GitHub is a web-based version control repository hosting service that is one of the most popular platforms for version control. It offers both public and private repositories, issue tracking, wikis, and collaboration features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bitbucket&lt;/strong&gt;: Bitbucket is another web-based version control repository hosting service that is owned by Atlassian. It supports both Git and Mercurial version control systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitLab&lt;/strong&gt;: GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager. It offers features such as continuous integration, continuous deployment, and issue tracking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mostly we will be understanding version control system in term of git and GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install Git
&lt;/h3&gt;

&lt;p&gt;Here is official guide to install git to your operating system: &lt;/p&gt;

&lt;p&gt;Official page: &lt;a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git"&gt;Git - Installing Git (git-scm.com)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Guide: &lt;a href="https://github.com/git-guides/install-git"&gt;https://github.com/git-guides/install-git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to introduce version control into your project?
&lt;/h2&gt;

&lt;p&gt;Introducing version control into your project, git as control system.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/strong&gt; command is used to initialize a new Git repository in your local system. It creates a hidden folder named &lt;strong&gt;&lt;code&gt;.git&lt;/code&gt;&lt;/strong&gt; in the current directory, which contains all the necessary metadata required for version control.&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 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Staging, Commits in Git
&lt;/h3&gt;

&lt;p&gt;In Git, a commit is a snapshot of your project at a particular point in time. When you commit, you're creating a new version of your project that you can refer back to later.&lt;/p&gt;

&lt;p&gt;To commit changes in Git, you first need to stage them. Staging is the process of selecting which changes you want to include in your next commit. When you stage changes, you're essentially creating a "staging area" where you can group together changes that you want to commit.&lt;/p&gt;

&lt;p&gt;To stage changes in Git, you can use the &lt;strong&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/strong&gt; command. For example, if you've made changes to a file called &lt;code&gt;name.txt&lt;/code&gt;, you can stage those changes with the following command:&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="c"&gt;# adding all file to stage&lt;/span&gt;
    git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# adding invidual file to stage  &lt;/span&gt;
    git add name.txt

&lt;span class="c"&gt;# adding photograph to album&lt;/span&gt;
    git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"name.txt file added"&lt;/span&gt;

&lt;span class="c"&gt;# remove from stage &lt;/span&gt;
    git restore &lt;span class="nt"&gt;--staged&lt;/span&gt; name.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Branches in Git
&lt;/h3&gt;

&lt;p&gt;In Git, a branch represents an independent line of development. It's essentially a movable pointer to a specific commit. When you create a new branch, Git creates a new pointer that moves independently of any other branches.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0akoeek7p9r7cnz6ik2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0akoeek7p9r7cnz6ik2.png" alt="Untitled" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's an example of how to create a new branch in Git:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &amp;lt;new-branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a new branch with the specified name, but it doesn't switch to that branch yet. To switch to the new branch, you can use the &lt;strong&gt;&lt;code&gt;git checkout&lt;/code&gt;&lt;/strong&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &amp;lt;new-branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To create and switch into new branch in same command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; &amp;lt;new-branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you've switched to the new branch, you can make changes and commit them just like you would on the master branch.&lt;/p&gt;

&lt;p&gt;Here's an example of how to merge a branch back into the main branch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main
git merge &amp;lt;branch-to-merge&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's an example of how to delete a branch in Git:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &lt;span class="nt"&gt;-d&lt;/span&gt; &amp;lt;branch-to-delete&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This deletes the specified branch. However, if the branch has not been merged yet, Git will prevent you from deleting it. In that case, you can use the &lt;strong&gt;&lt;code&gt;-D&lt;/code&gt;&lt;/strong&gt; flag to force the deletion&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &lt;span class="nt"&gt;-D&lt;/span&gt; &amp;lt;branch-to-delete&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Git Workflow
&lt;/h2&gt;

&lt;p&gt;A typical Git workflow involves several steps, including cloning a repository, making changes, staging those changes, committing them, and pushing them to a remote repository. Here's an example of what that might look like:&lt;/p&gt;

&lt;h3&gt;
  
  
  Clone a repository:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/user/repo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Create a branch&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The main branch is usually called &lt;code&gt;main&lt;/code&gt;. We want to work on another branch, so we can make a pull request and make changes safely. To get started, create a branch off of &lt;code&gt;main&lt;/code&gt;.  Typically naming convention for branch after a feature or fix.&lt;/p&gt;

&lt;p&gt;For feature &lt;code&gt;feat/&amp;lt;name-of-feature&amp;gt;&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;For fixing a bug &lt;code&gt;fix/&amp;lt;name-of-fix&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Make changes to file (and make a commit)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you've created a branch and moved the HEAD pointer to it by "checking out" to that branch, you're ready to make changes in repository.  Next, save your changes. You're ready to start the commit!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;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;"descriptive commit message"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Push your changes to the remote&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;So far commit is made locally, you're the only one that can see it. When you're ready to push your changes to the remote repository, you can use &lt;strong&gt;&lt;code&gt;git push origin &amp;lt;branch-name&amp;gt;&lt;/code&gt;&lt;/strong&gt;. This will push your changes to the remote repository, allowing others to see and use your changes.&lt;br&gt;
&lt;code&gt;origin&lt;/code&gt; is the default name for the remote repository from which you cloned your local repository. It is a short name to be used when reading and writing to that remote.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can change or remove remote repository using&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="c"&gt;# removing and re-adding remote:&lt;/span&gt;
git remote set-url origin git://&amp;lt;new-url-here&amp;gt;

&lt;span class="c"&gt;#To remove remote use this:&lt;/span&gt;
git remote remove origin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Open a pull request&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Pushing a branch, or new commits, to a remote repository is enough if a pull request already exists, but if it's the first time you're pushing that branch, you should open a new pull request. Pull request is a comparison of two branches that allows users to propose changes to a repository and request that those changes be merged into the main branch.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Merge into &lt;code&gt;main&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once repository owner or team decide that the pull request looks good, they can merge it. By merging, you integrate the feature branch into the other branch (most typically the &lt;code&gt;main&lt;/code&gt; branch). &lt;/p&gt;

&lt;p&gt;If you choose not to merge the pull request, you can also close pull requests with unmerged changes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main
git merge &amp;lt;branch-to-merge&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Learning by doing
&lt;/h2&gt;

&lt;p&gt;Learning by doing is the greatest way to learn anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://learngitbranching.js.org/"&gt;LearnGitBranching&lt;/a&gt; :&lt;/strong&gt;An interactive git visualization and tutorial. Aspiring students of git can use this app to educate and challenge themselves towards mastery of git!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Overall, Git is a powerful version control system that allows you to track changes to your code over time, collaborate with others, and maintain a history of your code. By following a typical Git workflow, you can make the most of Git's features and ensure that your code is well-organized and easy to manage.&lt;/p&gt;

&lt;p&gt;For additional articles, you can visit the &lt;a href="https://blog.viditkushwaha.com"&gt;blog.viditkushwaha.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Understanding of React Hooks - useEffect.</title>
      <dc:creator>Vidit Kushwaha </dc:creator>
      <pubDate>Wed, 15 May 2024 05:11:31 +0000</pubDate>
      <link>https://dev.to/viditkushwaha/understanding-of-react-hooks-useeffect-c6l</link>
      <guid>https://dev.to/viditkushwaha/understanding-of-react-hooks-useeffect-c6l</guid>
      <description>&lt;h2&gt;
  
  
  What is useEffect hook?
&lt;/h2&gt;

&lt;p&gt;According to the creator of react, Jordan Walke, it is introduced as way to manage side effects to functional React components. What are the side effects in functional react component? It mainly refers to the any changes that effect the program state, like modifying a variable, printing to the console, or making an API call, changing the DOM are few that considered side effects. In functional programing, minimizing side effects is important for writing predictable and maintainable code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Syntax
&lt;/h2&gt;

&lt;p&gt;useEffect is usually called at top level of your component. And required function to executed is passes as argument to useEffect, so every time component is re-render the useEffect is called.&lt;/p&gt;

&lt;p&gt;Second argument is passed as array of dependencies. This array tells React to re-run the effect (the first argument function) whenever any of the values in this array change. In this case, the effect behaves like a combination of &lt;code&gt;componentDidMount&lt;/code&gt; and &lt;code&gt;componentDidUpdate&lt;/code&gt; from class components.&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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="o"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The array of dependencies is empty then in that case the effect will only run once after the initial render of the component. else its re-runs whenever any of the values in the dependencies array change.&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="c1"&gt;// Component.tsx&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;useEffect&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="s1"&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="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&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="s1"&gt;/api/data&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;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&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="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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setData&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="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;
&lt;span class="c1"&gt;//...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  useEffect with CleanUp
&lt;/h2&gt;

&lt;p&gt;As we know that useEffect hook in React allows you to perform side effects in your functional components. It can also return a cleanup function that runs when the component unmounts, as well as before re-running the effect due to changes in dependencies.&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="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&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="s1"&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;Component&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&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="c1"&gt;// This is the effect&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Component mounted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// This is the cleanup function&lt;/span&gt;
    &lt;span class="k"&gt;return &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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Component unmounted&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="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt; &lt;span class="c1"&gt;// Empty dependencies array means the effect runs only once&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hey, Lary&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&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="nx"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the &lt;code&gt;console.log('Component mounted')&lt;/code&gt; line runs once when the component mounts. The cleanup function &lt;code&gt;() =&amp;gt; console.log('Component unmounted')&lt;/code&gt; runs when the component unmounts.&lt;/p&gt;

&lt;p&gt;This is useful for handling any necessary cleanup for your effects, such as cancelling API requests, or removing event listeners.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why is Cleanups required?&lt;/strong&gt;
&lt;/h3&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;timer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;setInterval&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;setTime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prevTime&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;prevTime&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;1000&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;clearInterval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;timer&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cleanup is necessary in React to avoid memory leaks and unwanted behavior. When you use the &lt;code&gt;useEffect&lt;/code&gt; hook to set up something, like an event listener or a timer, that setup is often persistent and won't automatically go away when the component unmounts. it's not tied to the lifecycle of the component. for example, if you start a timer with &lt;code&gt;setInterval&lt;/code&gt;, the timer will continue to run and call its callback function at the specified interval, even if the component that started it has unmounted. The browser doesn't know that the component has unmounted and that it should stop the timer.&lt;/p&gt;

&lt;p&gt;That concludes the fundamentals of &lt;code&gt;useEffect&lt;/code&gt;. If you enjoyed the article, please share it with your friends and the community. I will put out content a further article about &lt;code&gt;useContext&lt;/code&gt; soon.&lt;/p&gt;

&lt;p&gt;For additional articles, you can visit the &lt;a href="//www.blog.viditkushwaha.com"&gt;blog.viditkushwaha&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>useeffect</category>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>GitHub developer pack</title>
      <dc:creator>Vidit Kushwaha </dc:creator>
      <pubDate>Fri, 15 Sep 2023 16:53:25 +0000</pubDate>
      <link>https://dev.to/viditkushwaha/github-developer-pack-2cpp</link>
      <guid>https://dev.to/viditkushwaha/github-developer-pack-2cpp</guid>
      <description>&lt;p&gt;🚀 Exciting News for Student Developers! 🎓&lt;/p&gt;

&lt;p&gt;Are you a budding developer looking to supercharge your skills and propel your career forward? Look no further! GitHub's Student Developer Pack is here to turbocharge your learning journey.&lt;/p&gt;

&lt;p&gt;🌟 &lt;strong&gt;Frontend Master Course - Absolutely Free!&lt;/strong&gt;&lt;br&gt;
As part of this incredible pack, you gain access to Frontend Masters, the premier platform for mastering web development. Dive deep into the world of front-end engineering, learn from industry experts, and hone your skills in HTML, CSS, JavaScript, and more. It's a priceless opportunity to build a strong foundation in web development.&lt;/p&gt;

&lt;p&gt;💼 &lt;strong&gt;Boost Your Portfolio&lt;/strong&gt;&lt;br&gt;
But that's not all! The Student Developer Pack offers a treasure trove of goodies. You'll get free access to a suite of tools and services that will help you shine in the developer world. From hosting your projects on GitHub Pages to crafting stunning portfolios with Canva, these resources will give your resume a significant boost.&lt;/p&gt;

&lt;p&gt;👩‍💻 &lt;strong&gt;Cloud Credits and Developer Tools&lt;/strong&gt;&lt;br&gt;
As a student developer, you'll receive generous credits for cloud services like AWS, Azure, and DigitalOcean. Plus, you'll unlock access to essential developer tools, including JetBrains IDEs and Postman Pro. These resources will empower you to build, deploy, and test your projects with ease.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Domain Names and Learning Platforms&lt;/strong&gt;&lt;br&gt;
Need a cool domain name for your personal website? The pack's got you covered! You'll get free domain names through Namecheap, making your online presence truly professional. And for those eager to expand their knowledge, there are free courses on platforms like DataCamp and Educative.io.&lt;/p&gt;

&lt;p&gt;📦 &lt;strong&gt;So Much More!&lt;/strong&gt;&lt;br&gt;
This pack is loaded with benefits, including free GitHub Pro access, exclusive discounts on tech gear, and even free access to the GitHub Campus Program. It's your gateway to a world of learning, networking, and career growth.&lt;/p&gt;

&lt;p&gt;🚀 Don't miss out on this golden opportunity to turbocharge your developer journey. Grab your GitHub Student Developer Pack today and unlock a world of possibilities!&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://education.github.com/pack"&gt;Get Your Student Developer Pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's code, learn, and grow together! 🌟 &lt;br&gt;
written by- GPT-3.5&lt;/p&gt;

</description>
      <category>github</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Introducing my New Portfolio!</title>
      <dc:creator>Vidit Kushwaha </dc:creator>
      <pubDate>Tue, 20 Jun 2023 06:58:06 +0000</pubDate>
      <link>https://dev.to/viditkushwaha/introducing-my-new-portfolio-1h7l</link>
      <guid>https://dev.to/viditkushwaha/introducing-my-new-portfolio-1h7l</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cypwvvshhf7k4zeyh0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cypwvvshhf7k4zeyh0z.png" alt="Image description" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm thrilled to share that I've just launched my brand new portfolio website, built from scratch using Next.js, React, and Tailwind CSS! 🎉&lt;/p&gt;

&lt;p&gt;🔗 Check it out here: &lt;a href="https://viditkushwaha.live"&gt;viditkushwaha.live&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This portfolio represents the culmination of countless hours of hard work, creativity, and a passion for web development. I've drawn inspiration from the incredible Brittany Chiang and incorporated some elements from her portfolio design.&lt;/p&gt;

&lt;p&gt;Key Features of my Portfolio:&lt;/p&gt;

&lt;p&gt;✅ Client-side rendering for fast and seamless user experience&lt;br&gt;
✅ Utilizes the power of Next.js to optimize performance&lt;br&gt;
✅ Stunning UI design created with Tailwind CSS&lt;br&gt;
✅ Fully responsive layout for a seamless mobile experience&lt;br&gt;
✅ Integrated Google Analytics for comprehensive website analytics&lt;/p&gt;

&lt;p&gt;I have incorporated Google Analytics into my portfolio to gain valuable insights into user behavior, traffic sources, and engagement. This allows me to continuously refine and enhance the user experience.&lt;/p&gt;

&lt;p&gt;In addition, I'm excited to share that in the future, I will be adding a Progressive Web App (PWA) to my portfolio. By implementing a service worker, I'll enable offline functionality, faster loading times, and an enhanced user experience.&lt;/p&gt;

&lt;p&gt;I'd like to extend a special thanks to the open-source community for their incredible contributions. My portfolio is deployed on DigitalOcean, ensuring reliability and scalability.&lt;/p&gt;

&lt;p&gt;🔗 GitHub Repo: &lt;a href="https://github.com/Vidit-Kushwaha/v2.portfolio"&gt;Vidit-Kushwaha/v2.portfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to explore the codebase on GitHub and provide any feedback or suggestions. Your input is highly valued!&lt;/p&gt;

&lt;p&gt;I'm excited to connect with professionals, recruiters, and fellow developers. Let's collaborate and create amazing projects together. Reach out to me for any opportunities or just to say hello!&lt;/p&gt;

&lt;p&gt;You can also find me on social media platforms. Feel free to connect with me and stay updated on my latest projects and endeavors:&lt;/p&gt;

&lt;p&gt;🔗 LinkedIn: &lt;a href="https://www.linkedin.com/in/vidit9011/"&gt;Vidit Kushwaha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to connect with me on LinkedIn. I'm always open to networking and exploring new opportunities. Let's connect and grow together!&lt;/p&gt;

&lt;p&gt;Thank you for your support and for checking out my new portfolio. I'm looking forward to connecting with all of you!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>tailwindcss</category>
      <category>portfolio</category>
    </item>
  </channel>
</rss>
