Explainers · 7 min read · 2026-08-10
A QR code stores data in a square grid of black and white modules - typically 21 by 21 up to 177 by 177. Three large squares in the corners are position markers that let any camera find and orient the code from any angle. Between them sit timing patterns and alignment squares that map the grid, and the rest is your payload plus error-correction data. That error correction is the magic ingredient: up to 30% of the code can be damaged, smudged or covered and it still scans perfectly.
The usual culprits are too little contrast (dark-on-dark is unreadable), quiet-zone violations (the mandatory white border around the pattern), size relative to scan distance - a code should be roughly one-tenth of the expected scanning distance in millimetres - and pointing at content that has since vanished. That last one is the silent killer: a printed code encoding a short URL that expired two years ago becomes a permanent decoration. Use stable destinations for anything printed.
QR codes can encode contact cards (vCard), calendar events, Wi-Fi credentials so guests can join without typing a password, plain text, phone numbers and geo-locations. The Wi-Fi variant is genuinely useful at home and in small businesses: encode the network name and password once, print it, and stop reciting your passphrase to visitors. Because all of this is just text rendered into a pattern, a generator that runs in your browser has no reason to track what you encode.
A QR code is a paper API: it should resolve quickly, fail gracefully, and never require the user to think about the protocol underneath.