A QR code is a shortcut from something physical to something digital. That is the whole idea — everything below follows from it.
Since 2017 on iOS and 2018 on Android, the built-in camera reads QR codes with nothing installed. That single change is why they came back — the barrier that killed them the first time is gone.
A dynamic code points at a link you control. The menu, the price list, the event schedule can all change after ten thousand flyers are already printed.
Paper normally tells you nothing. A code on a poster tells you when it was scanned, roughly where, and on what kind of device — the same feedback online ads have always had.
Scanning a table code to see a menu is one motion. Typing a URL, getting it slightly wrong and searching instead is three, and some people give up in the middle.
QR codes were widely mocked around 2012, and the mockery was fair. Scanning one meant downloading a reader app first, which almost nobody did, so a code on a poster reached a tiny fraction of the people who saw it. The technology did not improve — the phones did. Once Apple and Google put a reader in the default camera, the cost of scanning dropped to pointing your phone, and the same idea started working. Nothing about the pattern itself changed.
A static code holds the data inside the pattern, so it works forever, needs no service behind it, and can never be changed. A dynamic code holds a short link that a server resolves, so the destination stays editable and each scan can be counted — but it depends on that service continuing to run. The practical rule: use static for anything permanent and offline, such as a Wi-Fi password or a vCard, and dynamic for anything you might want to change or measure. Printing a static code for a seasonal menu is the mistake that costs a reprint.
On a moving vehicle or a passing bus, where nobody has time to aim. On a website, where a link is simply better — a QR code on a screen asks somebody to scan one device with another. In places with poor reception, since the scan works but the page will not load. Anywhere the code is smaller than about 2 cm, or behind glare, or across a fold. And with an audience that will not scan an unexplained square: a code with no label beside it saying where it goes is asking for blind trust that many people, correctly, will not give.
A QR code hides its destination, which is exactly what makes it convenient and exactly what makes it abusable — stickers placed over legitimate codes in car parks are a real and common scam. Two things help. Say in plain words next to the code where it goes ("Scan for our menu"), so a scan that opens something else is obviously wrong. And prefer a short link on your own domain, so the URL preview a phone shows before opening confirms the code belongs to you.
Contrast first: dark on light, never inverted, never two mid-tones. Then the quiet zone, a clear margin roughly four modules wide that no artwork may cross. Then size — about 2 cm minimum in the hand, and roughly a tenth of the reading distance for signage, so a code read from 5 m needs to be about 50 cm. Then placement: reachable, lit, not below knee height, not behind reflective glass. Design choices break far fewer codes than these four things do.
It depends almost entirely on context and on whether the code says where it goes. A code on a restaurant table beside the words "scan for menu" gets used; an unlabelled code on a passing billboard does not. Treat placement and the label as the deciding factors, not the code itself.
A static code does not — the data is inside the pattern, so it works as long as the paper survives. A dynamic code resolves through a service, so it works while that service and your plan are active.
The pattern itself is just encoded text and cannot carry a virus. The risk is where it sends you, which is why phones show the URL before opening it, and why a printed code should be labelled with its destination and use a domain people recognise.
A dynamic code records the scan — approximate location from IP, device type, browser and time. It does not identify the person scanning, and we do not collect anything that would.
At least 2 cm across for anything held or read close up, and about a tenth of the viewing distance for signage. Print from a vector PDF rather than enlarging a PNG.
No. Static codes are free to create and free to use forever, here and elsewhere. Paid plans cover dynamic codes, analytics, vector export and bulk creation.
Designing and previewing a code is free and needs no account.