// COMPARISON
Static vs dynamic QR codes
Both produce a square of black and white that a phone camera reads. The difference is what happens after it is printed — and for a surprising number of uses, the static one is the right answer. Here is the whole comparison, including the parts that do not favour us.
Change where it points after printing
No. The destination is the pattern. Changing it means a new code and a reprint.
Yes, on Starter and above. The printed pattern holds an opaque address on our domain; what sits behind it is a record you edit.
The payload is a stored, versioned record with rollback — the printed symbol never encodes it.
Keep the content private
No. Anyone with a camera reads exactly what you typed, forever.
Yes. The payload is encrypted at rest with AES-256-GCM under a key belonging to your workspace alone.
Envelope encryption: a KMS master key wraps a per-workspace key, which wraps each payload. The ciphertext is bound to its own record, so it cannot be moved to another and still decrypt.
Decide who is allowed to open it
No. There is nothing between the scanner and the content.
Yes. 5 gate modes — sign-in, magic link, PIN, email OTP, or more than one at once.
The gate is stateful: an access link carries an expiry, a use count and a revocation, rather than being a self-contained token in the URL.
Withdraw access from someone who already scanned it
No. They read the content; it is theirs now.
Yes, for future opens. Revoke the link or pause the code and the next scan gets a closed gate.
Revocation is a row, so it takes effect on the next request. It does not reach into what a viewer already saw or forwarded.
See whether anyone scanned it
No. The scan never reaches a server of ours, or anyone's.
Yes. Time, outcome, gate used and coarse device signals, per scan.
Viewer IP addresses are stored as a keyed HMAC rather than in plaintext, so unique visitors can be counted without a reversible address in the store.
Send different people to different places
No. One pattern, one destination.
Yes. Routing rules on country, device, time of day or a campaign parameter, and an A/B split.
Resolution happens server-side on every scan, so the rule is evaluated per visitor rather than baked into the print run.
Work with no internet connection at the scanner
Yes. The content is in the pattern; nothing needs to be fetched.
No. The scanner has to reach our domain to resolve the address.
This is the real trade. A gated scan is a round trip, and that round trip is the entire product.
Guarantee nothing about it is stored anywhere
Yes. The generator on this site encodes in your browser and keeps nothing.
No. A record has to exist for there to be something to change, gate or revoke.
For a home Wi-Fi password or a personal phone number this is the better answer, and we say so on the generator itself.
Cost nothing and need no account
Yes. Free, instant, unlimited.
There is a free tier, and it needs an account because there is a record to own.
The free tier carries full envelope encryption and every gate; the paid tiers add volume, editing after print, branding, team seats and advanced controls.
Survive the company that made it going away
Yes. The pattern is self-contained and needs nobody.
No. The address has to resolve, which means someone has to be running.
Worth stating plainly rather than hiding: a dynamic code is a dependency. It is the same dependency as a short link or a domain name, and it is the price of everything above.
// THE CARVE-OUT
A dynamic code is not always gated, and we do not hide that
Every table like this one glosses "dynamic means private". Ours does not. A code can be marked public on purpose, and then the gate is dropped for that code alone: a scan resolves straight through to the destination with nothing to pass. A retail pack, a poster, a restaurant menu — a shopper holding a bottle in a shop cannot be asked to sign in.
What does not change in public mode: the payload is still encrypted at rest, it is still bound to its own record and workspace, the destination is still checked, and you can still pause it, or on a paid plan repoint it, without reprinting. Only the gate is dropped, only for the codes you mark, and the default stays gated.
Of the 6 access modes a code can carry, 5 gate the viewer and one deliberately does not.
// CHOOSING
Which one you actually want
Take the static one
The Wi-Fi password on the fridge. Your own phone number on a business card. A link that will never move. Anything where the content is harmless in public and the code must keep working with nobody running a server. It is free, it is instant, and nothing about it depends on us.
Make one now, freeTake the dynamic one
A document only some people should read. A campaign whose landing page will move. An event pass that should stop working on Monday. Anything printed at volume, where a reprint costs real money, or anything where you need to know it was opened. 14 content types, all encrypted the same way.
Create a dynamic codeStill deciding? Every feature, explained precisely covers the mechanisms above in detail, and pricing starts at nothing.