Dynamic and static codes, and why it cannot be undone
The single decision that matters most, made before you download and irreversible once the code is printed. It is worth two minutes.
A static code contains your link
The destination is encoded in the pattern of the squares. Scanning it never touches our servers or anybody else's — the phone reads the URL straight out of the image and goes there.
That makes it permanent in both senses. It will work in ten years whether we exist or not, and it can never be changed by anyone, including you, including us — if the destination dies, the code dies with it. Nor can it be measured: there is no request to count, so a static code produces no analytics at all.
A dynamic code contains a short address
The pattern encodes a short address that resolves through us and forwards to wherever you have currently pointed it. Change the destination whenever you like; the printed square is untouched.
Because the request passes through, it can be counted — which is where every report in the product comes from.
How to choose
If the destination will never change and you do not need to measure anything — a Wi-Fi password, a phone number, a permanent reference document — static is simpler and depends on nobody.
For anything promotional, anything printed in quantity, and anything you will want to report on, dynamic. The cost of guessing wrong is asymmetric: a dynamic code you never repoint cost you nothing, and a static code you needed to repoint costs a reprint.
It cannot be converted afterwards
The two kinds encode different data, so the printed symbols are physically different. Converting one to the other means a new code and new artwork. The studio tells you which one you are making before you download it, for exactly this reason.
See it happen
What you can do with it
A static code contains your link, permanently
Scanning it never touches our servers or anybody else's. It will work in ten years whether we exist or not, it can never be changed by anyone including us, and it produces no analytics at all — there is no request to count.
A dynamic code contains a short address
The pattern encodes an address that resolves through us and forwards to wherever you have currently pointed it. Change the destination whenever you like; the printed square is untouched. And because the request passes through, it can be counted.
The cost of guessing wrong is not symmetrical
A dynamic code you never repointed cost you nothing. A static code you needed to repoint costs a reprint. That asymmetry is the whole decision procedure.
Getting there
-
Ask whether it can ever change
If the honest answer is "probably not", it is still dynamic.
-
Ask whether you want to measure it
If yes, it must be dynamic. There is no other option.
-
Check what the studio says
It tells you which one you are making before you download.
-
Then print it
Because after that the decision is made for you.
More in the same place
Questions
Can I convert a static code to a dynamic one?
No. They encode different data, so the printed symbols are physically different — converting means a new code and new artwork.
Does a dynamic code stop working if you go out of business?
It would, which is the honest answer and the one real argument for static. For anything you are printing in the hundreds of thousands it is worth weighing against never being able to fix a dead link.
Is a dynamic code slower to open?
By one redirect, resolved at the edge. It is not something anybody notices.
Which do most people want?
Dynamic, for anything promotional, anything printed in quantity, and anything worth reporting on. Static for a Wi-Fi password or a phone number.
Try it with one code
The free plan has no expiry and asks for no card, and the analytics behind it are the same ones a paying customer gets.
Free forever for one person. No card, and 10,000 scans a month included.