<?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: Archit Bhargava</title>
    <description>The latest articles on DEV Community by Archit Bhargava (@just_a_programmer).</description>
    <link>https://dev.to/just_a_programmer</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%2F3744942%2F098e41bd-0a13-4c89-84f4-c6595f24ef6b.png</url>
      <title>DEV Community: Archit Bhargava</title>
      <link>https://dev.to/just_a_programmer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/just_a_programmer"/>
    <language>en</language>
    <item>
      <title>From Tab Chaos to Clarity: Why I Built a Chrome Extension for Jira + GitHub</title>
      <dc:creator>Archit Bhargava</dc:creator>
      <pubDate>Sat, 14 Feb 2026 01:36:29 +0000</pubDate>
      <link>https://dev.to/just_a_programmer/from-tab-chaos-to-clarity-why-i-built-a-chrome-extension-for-jira-github-1579</link>
      <guid>https://dev.to/just_a_programmer/from-tab-chaos-to-clarity-why-i-built-a-chrome-extension-for-jira-github-1579</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;A Chrome extension but let me tell you about the problem first.&lt;/p&gt;

&lt;p&gt;If you work in a team where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jira tickets aren’t pre-assigned&lt;/li&gt;
&lt;li&gt;Multiple developers resolve tickets dynamically&lt;/li&gt;
&lt;li&gt;Ticket status determines what goes to production&lt;/li&gt;
&lt;li&gt;Commits are used to track ownership&lt;/li&gt;
&lt;li&gt;Then you probably know this problem.&lt;/li&gt;
&lt;li&gt;It’s not about writing code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s about tracking responsibility — without losing your mind.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Workflow We Had
&lt;/h2&gt;

&lt;p&gt;In our setup:&lt;/p&gt;

&lt;p&gt;Developers pick up tickets freely.&lt;br&gt;
Whoever solves it moves the status.&lt;br&gt;
A tracker reports resolved tickets to the project manager.&lt;br&gt;
Production pushes depend on knowing which tickets were completed and by whom.&lt;br&gt;
Since assignees aren’t fixed beforehand, the most reliable source of truth became:&lt;/p&gt;

&lt;p&gt;Git commits.&lt;/p&gt;

&lt;p&gt;So we started adding Jira ticket IDs inside commit messages.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;feat: add validation for payment form (PROJ-142)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helped us:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify who solved which ticket&lt;/li&gt;
&lt;li&gt;Track what goes to dev vs prod&lt;/li&gt;
&lt;li&gt;Avoid duplicate work&lt;/li&gt;
&lt;li&gt;Maintain accountability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But a new problem started.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Pain: Tab Chaos
&lt;/h2&gt;

&lt;p&gt;Every time I needed to commit a ticket:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Jira&lt;/li&gt;
&lt;li&gt;Find the ticket&lt;/li&gt;
&lt;li&gt;Copy the ID&lt;/li&gt;
&lt;li&gt;Switch back to GitHub&lt;/li&gt;
&lt;li&gt;Write the commit&lt;/li&gt;
&lt;li&gt;Re-check acceptance criteria&lt;/li&gt;
&lt;li&gt;Switch again&lt;/li&gt;
&lt;li&gt;Open another tab&lt;/li&gt;
&lt;li&gt;Lose context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes I reused the same tab.&lt;br&gt;
Sometimes I opened new ones.&lt;/p&gt;

&lt;p&gt;Either way — I kept breaking flow.&lt;/p&gt;

&lt;p&gt;When you’re working across multiple tickets?&lt;/p&gt;

&lt;p&gt;It’s chaos.&lt;/p&gt;

&lt;h2&gt;
  
  
  It Got Worse…
&lt;/h2&gt;

&lt;p&gt;While committing, I often needed to check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edge cases mentioned in comments&lt;/li&gt;
&lt;li&gt;Special instructions&lt;/li&gt;
&lt;li&gt;Whether something should not go to production yet&lt;/li&gt;
&lt;li&gt;Small requirements hidden in discussion threads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I even started writing personal reminders in Notepad.&lt;br&gt;
And sometimes?&lt;br&gt;
I forgot to review them before pushing.&lt;/p&gt;

&lt;p&gt;That’s risky.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Problem Was Context Switching
&lt;/h2&gt;

&lt;p&gt;The issue wasn’t copying ticket IDs.&lt;/p&gt;

&lt;p&gt;It was losing context.&lt;/p&gt;

&lt;p&gt;Jira lived in one tab.&lt;br&gt;
GitHub lived in another.&lt;br&gt;
My notes lived somewhere else.&lt;/p&gt;

&lt;p&gt;My brain became the integration layer.&lt;/p&gt;

&lt;p&gt;And that’s not scalable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://chromewebstore.google.com/detail/jira-github-side-panel/ihedlilomeijpkldieojppicjhcjchij" rel="noopener noreferrer"&gt;https://chromewebstore.google.com/detail/jira-github-side-panel/ihedlilomeijpkldieojppicjhcjchij&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5sm4oacwcfrbvi2ps2qu.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%2F5sm4oacwcfrbvi2ps2qu.png" alt=" " width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;So I Built a Chrome Extension&lt;/p&gt;

&lt;p&gt;Instead of accepting the chaos, I built a Chrome extension that connects Jira context directly inside GitHub.&lt;/p&gt;

&lt;p&gt;View Jira Tickets Inside GitHub&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hover over a ticket ID&lt;/li&gt;
&lt;li&gt;Instantly see ticket details in a tooltip&lt;/li&gt;
&lt;li&gt;Open Jira in a side panel without leaving GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more full tab switching.&lt;br&gt;
No more breaking flow just to re-read acceptance criteria.&lt;/p&gt;

&lt;p&gt;Personal Notes Per Ticket&lt;/p&gt;

&lt;p&gt;I added a feature to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save private notes per ticket&lt;/li&gt;
&lt;li&gt;Review them before merging or pushing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more scattered Notepad files.&lt;br&gt;
Everything stays attached to the ticket.&lt;/p&gt;

&lt;p&gt;Lightweight Configuration&lt;br&gt;
Simple setup for Jira instance&lt;br&gt;
Quick toggle for tooltip behavior&lt;br&gt;
Minimal friction&lt;/p&gt;

&lt;p&gt;It works quietly in the background.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built the UI (With GitHub Copilot in terminal)
&lt;/h2&gt;

&lt;p&gt;For the UI layer, I experimented with AI-assisted development using GitHub Copilot terminal. Since this is a Chrome extension, the UI had to be built using plain JavaScript along with HTML and CSS, with no heavy frameworks and no React setup, just lightweight scripts injected directly into GitHub’s DOM. Instead of manually scaffolding every component, I described the UI structure in comments and let Copilot suggest layout patterns, tooltip logic, and side panel structures. I iterated on those suggestions, refined the styling and interactions step by step, and adjusted state handling to fit the extension environment. Copilot accelerated the repetitive parts such as structuring the popup, creating consistent UI elements, and wiring basic state flows, while I focused on the core logic, workflow decisions, and overall UX design. It did not replace thinking; it acted like a fast UI assistant. The result was a clean, lightweight interface that solves a real problem without overengineering it.&lt;/p&gt;

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

&lt;p&gt;I’m still improving it. &lt;/p&gt;

&lt;p&gt;If you’ve faced similar Jira + GitHub workflow problems, I’d love to hear how you solved them.&lt;/p&gt;

&lt;p&gt;Because at the end of the day:&lt;/p&gt;

&lt;p&gt;Great engineering isn’t just about code.&lt;/p&gt;

&lt;p&gt;It’s about designing better systems — including how we work.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Building My Interactive Portfolio with React Router, Gemini CLI &amp; Cloud Run</title>
      <dc:creator>Archit Bhargava</dc:creator>
      <pubDate>Mon, 02 Feb 2026 01:52:24 +0000</pubDate>
      <link>https://dev.to/just_a_programmer/building-my-interactive-portfolio-with-react-router-gemini-cli-cloud-run-44en</link>
      <guid>https://dev.to/just_a_programmer/building-my-interactive-portfolio-with-react-router-gemini-cli-cloud-run-44en</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I’m Archit, a frontend developer who loves building clean, scalable interfaces and turning complex ideas into intuitive user experiences. Over the past year, I’ve worked deeply with React, component libraries, and real-world product systems, and I wanted my portfolio to reflect more than just what I’ve built. I wanted it to show how I think, how I solve problems, and how I design experiences. This project became my way of treating my portfolio like a real product instead of a static resume, and using it to showcase both my technical skills and design mindset in a way that actually feels useful to the people viewing it.&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://my-project-386498401498.us-central1.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;







&lt;h2&gt;
  
  
  🛠️ How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Designing for real users, not just layouts
&lt;/h3&gt;

&lt;p&gt;I built my portfolio using React and React Router, but the real focus wasn’t the stack, it was the experience. Instead of another long scrolling page, I designed the site like a product journey where users can choose how they want to explore my work. Some people want a fast overview, others want deeper context, and some want to understand the technical decisions behind projects. React Router made it easy to structure these different paths cleanly while keeping the architecture scalable, maintainable, and closer to how real-world frontend applications are built.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Gemini CLI as a development partner
&lt;/h3&gt;

&lt;p&gt;Throughout development, I used Gemini CLI as a thinking partner rather than a code generator. I leaned on it to refine UX copy, validate component boundaries, reason through routing flows, and debug deployment issues. Having AI available directly in the terminal made iteration faster and more enjoyable, especially when working through Docker setup and Cloud Run configuration problems. Instead of replacing my thinking, Gemini sharpened it, acting like a second brain I could bounce ideas off while building.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shipping to production with Cloud Run
&lt;/h3&gt;

&lt;p&gt;For deployment, I containerized the application and shipped it to Google Cloud Run. I deliberately avoided traditional static hosting because I wanted this portfolio to run in a real production environment. Cloud Run forced me to think about environment-based port binding, health checks, serving optimized builds, and debugging cold starts. That extra friction turned out to be a gift because it made the project feel like real engineering work rather than just another side project deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A portfolio that feels like a product
&lt;/h3&gt;

&lt;p&gt;What I’m most proud of is how this portfolio feels like a product instead of a personal website. The multiple exploration paths, clean routing structure, and intentional UX decisions make it easy for different users to get what they want quickly, whether that’s a recruiter scanning for experience or a developer diving into technical details. It reflects how I actually build software in real teams, where clarity, intent, and usability matter more than flashy visuals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using AI thoughtfully, not as a shortcut
&lt;/h3&gt;

&lt;p&gt;I’m also proud of how intentionally I used AI in this project. Instead of treating Gemini as a shortcut, I used it as a collaborator to improve decisions, speed up iteration, and strengthen the final result. Combined with deploying on Cloud Run, this project helped sharpen both my frontend and production engineering skills. More than just a portfolio refresh, this became a product exercise, a UX experiment, and a real-world deployment challenge rolled into one.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
