This is the story of why our short domain is go.qr-m.in and not something prettier — and of a number we got wrong first, which is exactly why it's worth writing down. It's also the single highest-leverage fact in QR printing that almost nobody uses: URL length is not cosmetic. It sets the physical size of every module you will ever print.
Versions grow in steps, not slopes
A QR code's grid comes in fixed sizes called versions: 21×21, 25×25, 29×29, and so on. Data doesn't stretch a grid gradually — it fits in a version or it spills into the next one whole. At error correction level M, a URL of up to 26 characters fits version 2: 25×25 modules. The 27th character tips the whole code into version 3: 29×29. Same print size, 14% smaller modules, every module — and the module is the thing a camera sensor must resolve at distance.
The mistake that taught us the boundary
For months, an internal note claimed our older subdomain hit the good side of this boundary. It didn't — the measurement had been taken on the bare hostname, not the full URL a code actually encodes, and the domain had been paying for version 3 the whole time it was described as efficient. The correction produced the rule we now apply to everything: measure the encoded payload, never a part of it. https://go.qr-m.in/ plus a seven-character slug is 26 exactly — one character of margin, held on purpose, forever. It is also why the size calculator encodes your literal content instead of quoting tables.
What 14% buys in the world
Module size converts directly into scan distance and print tolerance. Larger modules scan from further away under the 10:1 rule, survive ink spread on cheap stock, and forgive the slight blur of a moving hand. On a 20 mm packaging code, the cliff is the difference between modules at 0.61 mm and 0.53 mm — right around the floor where print physics starts eating codes.
How to use this on purpose
- Count your full URL, with the scheme.
https://is eight characters of your budget before the domain starts. - Choose short domains like you choose print stock. A vanity domain two characters too long taxes every code printed on it, forever. (This is also a design constraint on branded domains —
qr.yourbrand.combeatscodes.yourbrandname.comby a whole version, sometimes two.) - Static codes feel this hardest. They encode the entire destination, so a long landing-page URL can cost two versions at once — one argument for a dynamic code's constant-length short URL on anything print-critical.
- Error correction moves the thresholds. The 26/27 boundary above is level M; at level H (mandatory with a logo) the steps land earlier. The principle holds; the numbers shift — measure.
One character, measured honestly, is the cheapest print-quality upgrade in this entire field. The second cheapest is checking the result: run the finished artwork through the scannability checker and the margin the cliff left you becomes a number instead of a hope.