<?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: smegg99</title>
    <description>The latest articles on DEV Community by smegg99 (@smegg99).</description>
    <link>https://dev.to/smegg99</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%2F3918628%2Fa55d0d1b-708c-4c50-abf8-751ae31e3283.png</url>
      <title>DEV Community: smegg99</title>
      <link>https://dev.to/smegg99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/smegg99"/>
    <language>en</language>
    <item>
      <title>I built permanent QR codes for GitHub repositories because hardware</title>
      <dc:creator>smegg99</dc:creator>
      <pubDate>Thu, 07 May 2026 19:25:27 +0000</pubDate>
      <link>https://dev.to/smegg99/i-built-permanent-qr-codes-for-github-repositories-because-hardware-3pbl</link>
      <guid>https://dev.to/smegg99/i-built-permanent-qr-codes-for-github-repositories-because-hardware-3pbl</guid>
      <description>&lt;h1&gt;
  
  
  I built permanent QR codes for GitHub repositories because hardware outlives URLs
&lt;/h1&gt;

&lt;p&gt;I recently built a small project called &lt;strong&gt;qr2g.it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is a tool for creating short links and QR codes for public GitHub repositories.&lt;/p&gt;

&lt;p&gt;The live version is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://qr2g.it/" rel="noopener noreferrer"&gt;https://qr2g.it/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/smegg99/qr2g.it" rel="noopener noreferrer"&gt;https://github.com/smegg99/qr2g.it&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, this sounds like a very simple idea. You paste a GitHub repository URL, generate a QR code, and place it wherever you need it.&lt;/p&gt;

&lt;p&gt;But the project came from a real problem I ran into while working on hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;I wanted to put a QR code directly on a PCB.&lt;/p&gt;

&lt;p&gt;The idea was simple: someone looks at the board, scans the QR code, and opens the GitHub repository for the project.&lt;/p&gt;

&lt;p&gt;That is useful for documentation, maintenance, manufacturing, debugging, and long-term project identification.&lt;/p&gt;

&lt;p&gt;The problem is that a normal GitHub repository URL is not something I want to permanently print onto hardware.&lt;/p&gt;

&lt;p&gt;A repository can be renamed.&lt;/p&gt;

&lt;p&gt;It can be moved to another account.&lt;/p&gt;

&lt;p&gt;It can be transferred to an organization.&lt;/p&gt;

&lt;p&gt;GitHub redirects usually help, but once a QR code is printed onto a PCB, enclosure, label, or piece of equipment, it cannot be changed.&lt;/p&gt;

&lt;p&gt;A README can be edited.&lt;/p&gt;

&lt;p&gt;A website can be updated.&lt;/p&gt;

&lt;p&gt;A PCB silkscreen cannot.&lt;/p&gt;

&lt;p&gt;That was the reason I built &lt;strong&gt;qr2g.it&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What qr2g.it does
&lt;/h2&gt;

&lt;p&gt;qr2g.it creates a short link for a public GitHub repository and generates a QR code for it.&lt;/p&gt;

&lt;p&gt;Instead of treating the current &lt;code&gt;owner/repository&lt;/code&gt; URL as the only source of truth, it stores a stable GitHub repository identity and uses that to resolve the repository later.&lt;/p&gt;

&lt;p&gt;So the link is meant to keep pointing to the right project even if the repository is renamed or moved.&lt;/p&gt;

&lt;p&gt;The goal is not to build a general-purpose URL shortener.&lt;/p&gt;

&lt;p&gt;The goal is narrower:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make GitHub QR codes more durable for physical things.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;For normal web links, a broken redirect is annoying.&lt;/p&gt;

&lt;p&gt;For physical projects, it is worse.&lt;/p&gt;

&lt;p&gt;If a link is printed on something that may exist for years, the link becomes part of the object. That could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a PCB,&lt;/li&gt;
&lt;li&gt;an enclosure,&lt;/li&gt;
&lt;li&gt;a product label,&lt;/li&gt;
&lt;li&gt;lab equipment,&lt;/li&gt;
&lt;li&gt;a 3D printed part,&lt;/li&gt;
&lt;li&gt;a hardware prototype,&lt;/li&gt;
&lt;li&gt;internal documentation,&lt;/li&gt;
&lt;li&gt;open-source project material.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In those cases, the QR code should not depend only on the current repository path.&lt;/p&gt;

&lt;p&gt;That was the main design idea behind qr2g.it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow
&lt;/h2&gt;

&lt;p&gt;The workflow is intentionally simple.&lt;/p&gt;

&lt;p&gt;You paste a public GitHub repository URL into qr2g.it.&lt;/p&gt;

&lt;p&gt;The app creates a short link.&lt;/p&gt;

&lt;p&gt;It also generates a QR code that can be downloaded and used in a project.&lt;/p&gt;

&lt;p&gt;That QR code can then be placed into a PCB design, printed on a label, added to documentation, or attached to a physical device.&lt;/p&gt;

&lt;p&gt;Later, when someone scans the QR code, qr2g.it resolves the repository and redirects them to its current GitHub location.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I kept it small
&lt;/h2&gt;

&lt;p&gt;This project is not trying to be a huge platform.&lt;/p&gt;

&lt;p&gt;It solves one specific problem I had.&lt;/p&gt;

&lt;p&gt;I like projects like that. They start from a real annoyance, solve it directly, and then become useful in other places too.&lt;/p&gt;

&lt;p&gt;qr2g.it is one of those tools.&lt;/p&gt;

&lt;p&gt;It is small, practical, and built around a very specific use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;The project is open source, so the full implementation is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/smegg99/qr2g.it" rel="noopener noreferrer"&gt;https://github.com/smegg99/qr2g.it&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The stack currently includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go for the backend,&lt;/li&gt;
&lt;li&gt;Nuxt for the frontend,&lt;/li&gt;
&lt;li&gt;PostgreSQL for storage,&lt;/li&gt;
&lt;li&gt;Docker for deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part, though, is not the stack. The important part is the idea: a QR code on a physical object should not become useless just because a GitHub repository moved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Possible use cases
&lt;/h2&gt;

&lt;p&gt;I think qr2g.it could be useful for people working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open hardware,&lt;/li&gt;
&lt;li&gt;electronics projects,&lt;/li&gt;
&lt;li&gt;school or lab equipment,&lt;/li&gt;
&lt;li&gt;internal tools,&lt;/li&gt;
&lt;li&gt;long-term documentation,&lt;/li&gt;
&lt;li&gt;PCB manufacturing,&lt;/li&gt;
&lt;li&gt;public GitHub projects,&lt;/li&gt;
&lt;li&gt;prototypes that need easy identification.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is especially useful when the QR code is going somewhere that is harder to update than a web page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;You can try the live version here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://qr2g.it/" rel="noopener noreferrer"&gt;https://qr2g.it/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/smegg99/qr2g.it" rel="noopener noreferrer"&gt;https://github.com/smegg99/qr2g.it&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback is welcome, especially from people who work with hardware, PCBs, documentation, or open-source projects.&lt;/p&gt;

&lt;p&gt;I built this because I needed it for one of my own projects, but I think the problem is common enough that other people may find it useful too.&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>hardware</category>
    </item>
  </channel>
</rss>
