<?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: Aditya Trivedi</title>
    <description>The latest articles on DEV Community by Aditya Trivedi (@adit1702).</description>
    <link>https://dev.to/adit1702</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%2F3867632%2F7b1a39a0-479c-467f-8599-a3c9dd8f54b8.jpg</url>
      <title>DEV Community: Aditya Trivedi</title>
      <link>https://dev.to/adit1702</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adit1702"/>
    <language>en</language>
    <item>
      <title>Agent to Agent Protocol (A2A) By Google</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Mon, 18 May 2026 15:57:07 +0000</pubDate>
      <link>https://dev.to/adit1702/agent-to-agent-protocol-a2a-by-google-29mn</link>
      <guid>https://dev.to/adit1702/agent-to-agent-protocol-a2a-by-google-29mn</guid>
      <description>&lt;p&gt;With the introduction of MCP Servers, it has changed the entire game of LLMs from just being able to give the response now to able to execute them with the help of tools. It may be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Querying data to get the data from database&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Executing an API call to make a POST request over a server&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having AI do the stuff for you&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is the Agent to Agent Protocol ?
&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%2Fnb3eahlxl8vv6u483mfn.jpg%2520align%3D" 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%2Fnb3eahlxl8vv6u483mfn.jpg%2520align%3D" alt="A2A protocol" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A2A Protocol&lt;/strong&gt; is a protocol launched by &lt;strong&gt;Google&lt;/strong&gt; to maximise the benefits that we can get from Agentic AI. This is to make the agents be able to collaborate in a dynamic, multi-agent ecosystem across data systems and applications.&lt;/p&gt;

&lt;p&gt;Here they have collaborated with more than &lt;strong&gt;50 technology partners&lt;/strong&gt; like &lt;strong&gt;Atlassian, Langchain, MongoDB, PayPal, CapGemini, KPMG, PwC, TCS,&lt;/strong&gt; etc*&lt;em&gt;.&lt;/em&gt;* This will now allow AI agents to communicate with each other, securely exchange information, coordinate actions on top of various enterprise platforms or applications. It is an open protocol that complements &lt;strong&gt;Anthropic’s Model Context Protocol (MCP)&lt;/strong&gt;, which provides helpful tools, and context to agents.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;How Does it Work ?&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%2F2eidyj8f292o67bobbf3.png%2520align%3D" 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%2F2eidyj8f292o67bobbf3.png%2520align%3D" alt="Working" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Consider an example where there is an agent made by me. My agent has the task to get the resume, analyse it , and return the best fit candidate for based on the Job Description and Job Profile. Now consider &lt;strong&gt;Apple&lt;/strong&gt; is the recruiting partner, and they have created their own agent to get the work done for them and get the best candidate for them. This would be the flow now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Agent 1 finds the relevant job role, description and sends it to Agent 2.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent 2 now checks all the resumes which match the job role and description given by Agent 1.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After analysing and finding out the best candidate, it sends it to Agent 1.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent 1 now sends handles the next step.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this both the agents will be able to talk internally within themselves.&lt;/p&gt;




&lt;h2&gt;
  
  
  Consider a real life example:
&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%2Fmf0583sd3325nfdhbnnu.png%2520align%3D" 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%2Fmf0583sd3325nfdhbnnu.png%2520align%3D" alt="Example" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dominos &amp;amp; Burger King&lt;/strong&gt; have also started to create their own agent to make their work life easier for them. Zomato now as a platform which has both Dominos and Burger King will have their own agent which will take care for the work for them.&lt;/p&gt;

&lt;p&gt;Consider a situation where the user says, ‘I want to eat a Pizza’, what will Zomato’s agent do ?. It needs to get the access to Domios’s Database to get the orders, but how will it get ? This will be done via the &lt;strong&gt;A2A Protocol&lt;/strong&gt;. Same with the case when the user says, ‘ I want to eat a Whooper Burger Also’.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Do These Agents Discover Each Other ?
&lt;/h2&gt;

&lt;p&gt;Making it more simple, How does Zomato’s agent discover that Dominos Agent has the following capabilities ?&lt;/p&gt;

&lt;p&gt;They connect via &lt;strong&gt;OpenID Connect.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is OpenID Connect ?
&lt;/h2&gt;

&lt;p&gt;Imagine you’re logging into a website, and instead of creating an account, you see a “&lt;strong&gt;Login with Google”&lt;/strong&gt; button. You click it, and boom — you’re in. That is powered by &lt;strong&gt;OpenID Connect (OIDC).&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📌 In Simple Terms:
&lt;/h3&gt;

&lt;p&gt;OpenID Connect is a layer built on top of &lt;strong&gt;OAuth 2.0&lt;/strong&gt; that lets you log into apps using your existing account from providers like Google, Microsoft, Facebook,etc. It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;✅ Authentication (Who are you?)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🔐 Secure login without passwords&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🔁 Passing user info between services&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔄 &lt;code&gt;`/.well-known`&lt;/code&gt; in OIDC:
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/.well-known&lt;/code&gt; is a standard path used by OIDC to automatically discover &lt;strong&gt;important configuration information&lt;/strong&gt; about the identity provider like Google, AuthO, Okta,etc. In other terms, it’s where the &lt;strong&gt;identity provider publishes its OIDC configuration&lt;/strong&gt; so that client apps know &lt;strong&gt;where to authenticate, get tokens, and fetch user info&lt;/strong&gt;. Let’s take an example:&lt;/p&gt;

&lt;p&gt;When an app wants to use Google as an identity provider, it goes to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;https://accounts.google.com/.well-known/openid-configuration
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And gets back a &lt;strong&gt;JSON file&lt;/strong&gt; like this:&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%2F3xzrjkfcrhecx5h2mo7u.png%2520align%3D" 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%2F3xzrjkfcrhecx5h2mo7u.png%2520align%3D" alt="JSON Output" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the agents, they connect via &lt;code&gt;./well-known/agent.json&lt;/code&gt; configuration in OpenID Connect.&lt;/p&gt;




&lt;p&gt;This is just the start of something new, there’s more to come. Checkout the GitHub link below for a sample code using A2A Protocol.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href="https://github.com/google/A2A" rel="noopener noreferrer"&gt;https://github.com/google/A2A&lt;/a&gt;&lt;/p&gt;




</description>
      <category>google</category>
      <category>a2a</category>
      <category>agenticai</category>
      <category>ai</category>
    </item>
    <item>
      <title>10 Hidden Gems in GitHub Actions for Automating Your Workflow</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Mon, 18 May 2026 15:48:55 +0000</pubDate>
      <link>https://dev.to/adit1702/10-hidden-gems-in-github-actions-for-automating-your-workflow-1m12</link>
      <guid>https://dev.to/adit1702/10-hidden-gems-in-github-actions-for-automating-your-workflow-1m12</guid>
      <description>&lt;p&gt;Here are 10 lesser-known but insanely useful &lt;strong&gt;GitHub Actions&lt;/strong&gt; you should be using.&lt;/p&gt;

&lt;h2&gt;
  
  
  YAML Validator
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Validate YAML&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ibiqlik/action-yaml-lint@v3&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;config_file&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.yamllint'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Saves you from debugging night-mare inducing YAML misconfigurations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Essential for Kubernetes, GitHub Workflows and CI/CD.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Markdown Link Checker
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Check Markdown Links&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gaurav-nelson/github-action-markdown-link-check@v1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Keep documentation flawless.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Auto Assign PRs
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Auto Assign PR&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;kentaro-m/auto-assign-action@v1&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;assignees&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;team-lead'&lt;/span&gt;
    &lt;span class="na"&gt;reviewers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;senior-dev'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Save time, specially for those teams who handle multiple PRs daily.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Commitlint
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Commitlint&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;wagoid/commitlint-github-action@v5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Keeping changelogs neat and versioning structured.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Cache Dependencies
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Cache Node Modules&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/cache@v3&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/.npm&lt;/span&gt;
    &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}&lt;/span&gt;
    &lt;span class="na"&gt;restore-keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
      &lt;span class="s"&gt;${{ runner.os }}-node-&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Reducing build times in active development environments&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Notify Slack
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Notify Slack&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rtCamp/action-slack-notify@v2&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;webhook-url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.SLACK_WEBHOOK }}&lt;/span&gt;
    &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Deployment&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Status:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;${{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;job.status&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Keeping teams updated instantly with real-time slack notifications for builds, tests, and deployments.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  License Compilance Checker
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;License Check&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;anchorfree/license-check-action@v2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If your project depends on external libraries, you need to ensure all licenses are compilant. This action does the checking for you.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Notify Slack
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PR Size Labeler&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;kentaro-m/size-label-action@v3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Helps reviewers by labelling PRs based on size - small, medium, large.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Security Scan with Trivy
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Security Scan&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;aquasecurity/trivy-action@v0.3.0&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image-ref&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;myapp:latest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Keeping your Docker images secure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identifying vulnerable dependencies before deployment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  GitHub Actions for JIRA Integration
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Update Jira Issue&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;atlassian/gajira-create@v3&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;project&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ENG"&lt;/span&gt;
    &lt;span class="na"&gt;issuetype&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task"&lt;/span&gt;
    &lt;span class="na"&gt;summary&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Automated&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;issue&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;update&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;from&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;GitHub&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Action"&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Linked&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;PR:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;${{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;github.event.pull_request.html_url&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This action automatically updates tickets based on GitHub commits and PR.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Do let me know which one will you use ?&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>github</category>
      <category>actions</category>
      <category>automations</category>
    </item>
    <item>
      <title>Why does a href tag have an underscore '_' ?</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Mon, 18 May 2026 15:47:58 +0000</pubDate>
      <link>https://dev.to/adit1702/why-does-a-href-tag-have-an-underscore--137e</link>
      <guid>https://dev.to/adit1702/why-does-a-href-tag-have-an-underscore--137e</guid>
      <description>&lt;p&gt;Before HTML5, developers used &lt;strong&gt;frameset&lt;/strong&gt; for SPA-like functionality, dividing the window into multiple frames, each with its own unique name. For e.g, left frame might be name=”sidebar” and right could be name=”content”.&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%2F7pb4xdh0v59ihzhh48gl.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%2F7pb4xdh0v59ihzhh48gl.png" alt="FrameSet" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When clicking a link, the browser needed to know which frame to load the content into. That’s where the attribute came in. Clicking a link in sidebar, would load content in content frame:&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="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pricing"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now if you had a frame named “blank” and used &lt;strong&gt;a href=”/” target=blank&lt;/strong&gt;, the content would load in that frame. But if no frame existed, browser would create a new window and assign it in the “blank” name.&lt;/p&gt;




&lt;h2&gt;
  
  
  So Why Underscore ?
&lt;/h2&gt;

&lt;p&gt;It’s simple, developers needed a way to explicitly tell the browser to open the link in a new tab, free of frame semantics. The underscore signifies a special value rather than frame name.&lt;/p&gt;




</description>
      <category>href</category>
      <category>html</category>
      <category>developers</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Automate your Git Workflow using AI</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Mon, 18 May 2026 14:38:11 +0000</pubDate>
      <link>https://dev.to/adit1702/automate-your-git-workflow-using-ai-5fi0</link>
      <guid>https://dev.to/adit1702/automate-your-git-workflow-using-ai-5fi0</guid>
      <description>&lt;p&gt;Tired of thinking what comments to add for your git commit. This flow will help you.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Git Bash:&lt;/strong&gt; Installed on your Windows System.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ollama CLI:&lt;/strong&gt; Installed and configured with &lt;code&gt;phi3.5&lt;/code&gt; model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Basic Knowledge of Git Commands and Terminal Usage.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1: Create the Script File&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open your favorite Text editor and create a new file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy and paste the following Bash Script:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;# git_auto_commit.sh&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; git rev-parse &lt;span class="nt"&gt;--git-dir&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null 2&amp;gt;&amp;amp;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
 &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Error: This directory is not a Git repository."&lt;/span&gt;
 &lt;span class="nb"&gt;exit &lt;/span&gt;1
&lt;span class="k"&gt;fi

if &lt;/span&gt;git diff-index &lt;span class="nt"&gt;--quiet&lt;/span&gt; HEAD &lt;span class="nt"&gt;--&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
 &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"No changes detected. Exiting."&lt;/span&gt;
 &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Staging changes..."&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="nv"&gt;summary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git diff &lt;span class="nt"&gt;--cached&lt;/span&gt; &lt;span class="nt"&gt;--name-only&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Generating commit message suggestion from Ollama phi3.5..."&lt;/span&gt;
&lt;span class="nv"&gt;suggested_commit_msg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ollama run phi3.5 &lt;span class="s2"&gt;""&lt;/span&gt;Generate a concise yet informative commit message that accurately summarizes the following code changes. The message should be clear, professional, and follow best practices &lt;span class="k"&gt;for &lt;/span&gt;commit messages. Aim to describe the purpose and impact of the changes &lt;span class="k"&gt;in &lt;/span&gt;a way that is easy to understand. Avoid unnecessary details but ensure the key modifications are covered. Format the message &lt;span class="k"&gt;in &lt;/span&gt;an imperative style &lt;span class="o"&gt;(&lt;/span&gt;e.g., &lt;span class="s1"&gt;'Fix bug in authentication flow'&lt;/span&gt; instead of &lt;span class="s1"&gt;'Fixed a bug...'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; Here are the changes to summarize: &lt;span class="nv"&gt;$summary&lt;/span&gt;&lt;span class="s2"&gt;")

echo "&lt;/span&gt;Suggested commit message:&lt;span class="s2"&gt;"
echo "&lt;/span&gt;&lt;span class="nv"&gt;$suggested_commit_msg&lt;/span&gt;&lt;span class="s2"&gt;"

read -p "&lt;/span&gt;Edit commit message? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="s2"&gt;" choice

if [[ "&lt;/span&gt;&lt;span class="nv"&gt;$choice&lt;/span&gt;&lt;span class="s2"&gt;" =~ ^[Yy]&lt;/span&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="s2"&gt;]]; then
   echo "&lt;/span&gt;Enter your commit message below. Press Ctrl+D when &lt;span class="k"&gt;done&lt;/span&gt;.&lt;span class="s2"&gt;"
   commit_msg=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;  # Reads multiline input until Ctrl+D
else
   commit_msg="&lt;/span&gt;&lt;span class="nv"&gt;$suggested_commit_msg&lt;/span&gt;&lt;span class="s2"&gt;"
fi

git commit -m "&lt;/span&gt;&lt;span class="nv"&gt;$commit_msg&lt;/span&gt;&lt;span class="s2"&gt;"
git push origin master
echo "&lt;/span&gt;Done!&lt;span class="s2"&gt;"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the file as &lt;code&gt;git_auto_commit.sh&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 2: Add the Script to Your Global Bin Directory&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a &lt;code&gt;bin&lt;/code&gt; directory if it doesn’t exist:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Move the script to this directory:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv&lt;/span&gt; /path/to/git_auto_commit.sh ~/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3: Make the Script Executable inside a bash terminal.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can use Git Bash as well to execute it here&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;chmod&lt;/span&gt; +x ~/bin/git_auto_commit.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Step 4: Add the Script Directory to Your PATH&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open &lt;code&gt;~/.bashrc&lt;/code&gt; or &lt;code&gt;~/.bash_profile&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add this line at the end:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/bin:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save and apply changes:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 5: Testing the Script&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Navigate to a Git repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git_auto_commit.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow the prompts.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Additional Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ensure &lt;code&gt;Ollama&lt;/code&gt; is installed and running.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Windows &lt;strong&gt;NTFS&lt;/strong&gt; permissions may not reflex Unix-style &lt;code&gt;chmod&lt;/code&gt; changes, but the script will execute.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;This script is now available at my GitHub Repository. Go ahead and automate your Git Workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Yuvadi29/Ai-Comment-Generator" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;




</description>
      <category>github</category>
      <category>ai</category>
      <category>workflow</category>
      <category>automation</category>
    </item>
    <item>
      <title>How To Approach Projects</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Mon, 18 May 2026 14:20:35 +0000</pubDate>
      <link>https://dev.to/adit1702/how-to-approach-projects-44dh</link>
      <guid>https://dev.to/adit1702/how-to-approach-projects-44dh</guid>
      <description>&lt;p&gt;Whenever it comes to creating a project or making a project, the most crucial part of it is to have an approach to it. Many a times, what developers do is that they directly start creating the project, rather than understanding what the requirements of the project is.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;The way I approach a project is:&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Initial Planning&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Understanding what is the exact requirement in detail&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating a flowchart understanding what is the flow of the entire project&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Technology Selection&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Based on the flowchart, NOW is when I choose the tech stack to start the project. Now this step also has some conditions while making decision on:&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Backend Selection&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fast Processing → NodeJS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Processing and Cleaning → Python/Django/Flask&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI or Machine Learning → Python or NodeJs (Personally my choice as there are many libraries which are available here as well)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security → Java&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Frontend Options&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;NextJS → Fast Loading and Image Optimisation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ViteJS → Faster Development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Or Any other JavaScript Based Frameworks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TalwindCSS/ShadCN → Styling&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Database Choices&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;MongoDB → Super Easy Syntax and easy to connect and also document based&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supabase → OpenSource Structured Database like MYSQL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ChromaDB/PineCone/MongoDB → Vector Embeddings and Vector Search (AI Related Applications)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;API Testing Tools&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Postman&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Design Phase&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;After I am done choosing my Tech Stack, next step is to start with the designing the frontend. For that I usually go for either Figma or Penpot (Open Source Figma Alternative)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Development Process&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Now this is where a little debate happens, some directly go for frontend development while some start with backend. Don't worry nothing is wrong here, you can start with anything you want.&lt;/p&gt;

&lt;p&gt;I personally choose to start with creating the backend first as I think this particularly takes a lot of time developing and most importantly &lt;strong&gt;TESTING&lt;/strong&gt; 😏😏.&lt;/p&gt;

&lt;p&gt;I use TDD approach for this which is Test-Driven-Development i.e. create an api → test it with multiple test case you can think of, then move forward with the next one.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Frontend Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once backend is created, now start with designing the frontend. Always prefer using reusable components in your website so that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Number of Lines of Code is reduced&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugging is easier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code is Reusable&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start creating the frontend using mobile first view as it is very important to have your website both desktop and mobile friendly. Using this approach reduces a lot of your time in development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6. Integration &amp;amp; Testing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once the frontend is completed, next task is to start integrating the APIs. This is where all the crucial aspect of any website is implemented.&lt;/p&gt;

&lt;p&gt;Once APIs are integrated, next step is to do a thorough testing of the integrated APIs and UI. If the results are as per your requirements, you are good to go for deployment else debug the issues and solve them until and unless you're requirements are not met.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7. Deployment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For Backend deployment I usually prefer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Render&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PythonAnywhere&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Frontend My only way to go is &lt;a href="http://vercel.com" rel="noopener noreferrer"&gt;vercel.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once this is done, your project is completed. Congratulations 🥳&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just a small reminder, this approach can be changed based on the scalability and use case of the project.”&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>sideprojects</category>
      <category>project</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
