<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>qrcodegenerator.in blog</title>
    <link>https://qrcodegenerator.in/blog/</link>
    <atom:link href="https://qrcodegenerator.in/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <description>What we learn making QR codes that scan, and keep scanning.</description>
    <language>en-in</language>
    <lastBuildDate>Sun, 01 Nov 2026 12:00:00 +0000</lastBuildDate>

    <item>
      <title>How big should a QR code be? The arithmetic, and the part nobody can give you</title>
      <link>https://qrcodegenerator.in/blog/qr-code-print-size-arithmetic/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/qr-code-print-size-arithmetic/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Print</category>
      <description>Payload length sets the module count, the module count divides your print width, and the printer’s resolution decides whether a module prints cleanly. All three are arithmetic. The scan distance is the part that is not.</description>
    </item>
    <item>
      <title>What a UPI QR code contains, field by field — and the ones that break payments</title>
      <link>https://qrcodegenerator.in/blog/upi-qr-code-fields-explained/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/upi-qr-code-fields-explained/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Payments</category>
      <description>A UPI QR code is a link that starts upi://pay, followed by a handful of fields. Most failed scans at a counter come from three of them being missing, malformed or wrongly encoded.</description>
    </item>
    <item>
      <title>What “expires” really means when a QR code stops working</title>
      <link>https://qrcodegenerator.in/blog/what-qr-code-expired-really-means/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/what-qr-code-expired-really-means/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Dynamic QR</category>
      <description>The code never expires. The redirect behind it gets switched off. A plain-language account of how the category ended up here.</description>
    </item>
    <item>
      <title>Static or dynamic: a decision table, not a sales pitch</title>
      <link>https://qrcodegenerator.in/blog/static-or-dynamic-qr-code/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/static-or-dynamic-qr-code/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Dynamic QR</category>
      <description>Six questions that settle it, including the two cases where a static code is genuinely the better engineering choice.</description>
    </item>
    <item>
      <title>How much of a QR code can a logo cover?</title>
      <link>https://qrcodegenerator.in/blog/qr-code-logo-size/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/qr-code-logo-size/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Design</category>
      <description>Error correction gives you a damage budget. A logo spends it before the code is printed, and the budget is counted in codewords, not in area — which is why “up to 30%” is the wrong way to think about it.</description>
    </item>
    <item>
      <title>Dot styles, rounded eyes and the modules you are quietly shrinking</title>
      <link>https://qrcodegenerator.in/blog/qr-code-dot-styles-and-scanning/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/qr-code-dot-styles-and-scanning/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Design</category>
      <description>A round dot inside a square module is 79% of the ink the square would have been. That is the first cost of a dot style, and it is arithmetic. The second is what styling does to the corner patterns a camera looks for first.</description>
    </item>
    <item>
      <title>Quishing: how QR phishing works and what actually stops it</title>
      <link>https://qrcodegenerator.in/blog/quishing-qr-code-phishing/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/quishing-qr-code-phishing/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Security</category>
      <description>Sticker-over-sticker attacks, redirect chaining and homograph domains — plus why decoding before opening defeats all three.</description>
    </item>
    <item>
      <title>CMYK conversion is why your code failed at the printer</title>
      <link>https://qrcodegenerator.in/blog/cmyk-conversion-qr-code-contrast/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/cmyk-conversion-qr-code-contrast/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Scanability</category>
      <description>A code designed on screen is in RGB; a press prints CMYK. The conversion moves colours — usually toward lower contrast — and a code that passed on screen can arrive under the line on paper.</description>
    </item>
    <item>
      <title>Why we never store a raw IP address</title>
      <link>https://qrcodegenerator.in/blog/why-we-never-store-a-raw-ip-address/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/why-we-never-store-a-raw-ip-address/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Security</category>
      <description>Geo is derived at the edge and the address discarded before the event leaves the worker. What that costs us in analytics, and why it is worth it.</description>
    </item>
    <item>
      <title>UPI QR codes with a fixed amount: when to use one, and when it costs you payments</title>
      <link>https://qrcodegenerator.in/blog/upi-qr-code-with-fixed-amount/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/upi-qr-code-with-fixed-amount/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Payments</category>
      <description>Putting the amount in the code saves the customer typing it and stops wrong amounts. It also means the code is wrong the day the price changes — and a payment code cannot be a dynamic redirect.</description>
    </item>
    <item>
      <title>Error correction levels L, M, Q and H: what each costs, and when to raise it</title>
      <link>https://qrcodegenerator.in/blog/qr-code-error-correction-levels/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/qr-code-error-correction-levels/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Scanability</category>
      <description>A higher level lets a code survive more damage and makes it denser for the same data. Choosing it is a trade between those two, and the numbers for both are in the standard.</description>
    </item>
    <item>
      <title>Curved, glossy, outdoors: where printed QR codes meet the real world</title>
      <link>https://qrcodegenerator.in/blog/qr-codes-on-curved-glossy-outdoor-surfaces/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/qr-codes-on-curved-glossy-outdoor-surfaces/</guid>
      <pubDate>Sun, 01 Nov 2026 12:00:00 +0000</pubDate>
      <category>Print</category>
      <description>A bottle bends the code away from the camera, a laminate throws the light back at it, and a summer in a shop window takes the black out of it. Each has a cause you can reason about before printing.</description>
    </item>
    <item>
      <title>Why won’t my QR code scan? Five causes, and which of them we can measure</title>
      <link>https://qrcodegenerator.in/blog/why-wont-my-qr-code-scan/</link>
      <guid isPermaLink="true">https://qrcodegenerator.in/blog/why-wont-my-qr-code-scan/</guid>
      <pubDate>Sat, 22 Aug 2026 12:00:00 +0000</pubDate>
      <category>Scanability</category>
      <description>Four of the five have an answer in the specification or in arithmetic you can repeat. The fifth is the one every tool gives you a number for, and it is the one nobody should.</description>
    </item>
  </channel>
</rss>
