How QR codes store data
A QR (Quick Response) code is a 2D matrix barcode invented by Denso Wave in 1994 for tracking automotive parts, and it turns out that the same properties that made it useful on factory floors (fast scan, large data capacity, damage tolerance) made it perfect for smartphones.
Data is encoded in the black-and-white cell pattern using Reed-Solomon error correction, which adds redundant parity data so the code can be reconstructed even if parts of it are physically damaged, dirty, or obscured. The four error correction levels (L, M, Q, H) let you trade smaller file size (simpler pattern) for higher damage resilience.
Alphanumeric vs binary encoding
QR codes can encode data in several modes depending on content. Numeric-only strings (like a phone number) fit into the smallest patterns. Alphanumeric mode handles uppercase letters and a handful of special characters, achieving ~45 characters per data module. Binary mode, used for URLs and general text, stores 8 bits per character and is more flexible but slightly less dense.
A typical URL like https://toolbook.io/tools/qr-code-generator is 50 characters. At error level M with binary encoding, this fits comfortably within a 29x29 cell pattern (version 3). The practical capacity for a high-error-correction QR code is around 1,800 characters; at low correction it stretches to ~2,900 bytes.
Static vs dynamic QR codes
The QR code this tool generates is static: the encoded content is permanent. There is no server redirect. This is both a feature and a limitation: the QR code is fast, private, and works forever without a subscription, but you cannot change the destination after printing.
Dynamic QR codes store a short redirect URL pointing to a third-party server. That server then redirects to the actual destination, which can be updated without reprinting. Dynamic codes also enable scan analytics. The trade-off: if the third-party service shuts down or your subscription lapses, every printed code stops working.
For most uses such as linking to your own stable URL, sharing a Wi-Fi password, or encoding contact info, a static QR code is the better choice.
Print guidelines
For reliable scanning, print QR codes at a minimum module size of 0.4 mm. A 512x512 px PNG printed at 150 DPI gives a 3.4 cm x 3.4 cm physical code, well above the threshold. For larger formats or professional print workflows, download the SVG, which scales to any size without pixelation. The white quiet zone border (two modules wide by default in this tool) is required: scanners use it to detect the code boundary.
Avoid placing a QR code on reflective surfaces (glossy packaging, glass) as specular reflections confuse camera autofocus. Matte paper or matte laminate works best.