b59.link cover: 77 QR codes, decoded. 67 can die. Inside the code: l.ead.me, qrs.ly, qrcc.me, scnv.io, not your address

A bakery prints 200 flyers with a QR code for its new menu. Eight days later the code opens a page asking for a subscription. A restaurant cancels a $20-a-month plan and has to reprint 80 menus. We came across both stories while reading an Indie Hackers thread and the generators' own help pages, and review sites are full of the same complaint: "my QR code expired".

QR codes don't expire. A QR code is a few dozen characters of text drawn as squares, and ink doesn't have a subscription. What expires is the thing the text points to. So the useful question about any code is: what text is actually in it?

We went and looked. Not at customers' codes, but at the sample codes the QR generator companies print on their own home pages, the ones in the phone mock-ups and the "scan me" demos. Those are the product, as the makers choose to show it.

What we did

On 10 October 2026 we downloaded the images from 19 pages on 16 QR generator sites and ran every image through a QR decoder. Thirteen of the sites had readable codes. After removing repeats we had 77 different codes. Then we requested each one once, the way a phone would, and noted where it went.

What was inside

67 of the 77 codes hold a short address on a domain the generator controls. The real destination isn't in the code at all. It's in a row in the company's database, looked up each time someone scans. Only 10 hold a plain address, and most of those are the generator's own home page.

text
Generator (site)            What its sample codes hold
--------------------------  ------------------------------------------
QR Code Generator (Bitly)   l.ead.me/bb2BVm, qrco.de/colour-1
QRCodeChimp                 qrcc.me/qqjbpiXE, linko.page/s7crtl3lowyb
QR Stuff                    qrs.ly/q9g32qw
QRCode AI                   qrc-ai.com/4NAtn
QRCodeKIT                   qrkit.co/GHiX41, uqr.to/test-qr-code
Scanova                     scnv.io/JbSc
The QR Code Generator       qr-codes.io/1tTjBstLWTE
Canva's generator page      canvaqr.com/RGOwjg1rN6, qrfy.io/UJaRm-kJdH
Flowcode                    flowcode.com/p/..., nbcu.flowto.it/...
ME-QR                       me-qr.com/cqMeW6cf  (forwards to qr2.me-qr.com)
Bitly                       bit.ly/3MqL8sO, qrco.de/bitlyqrcodeasset

That's 16 different forwarding domains. Look at the names: l.ead.me, qrcc.me, qrs.ly, scnv.io, uqr.to. If one of these showed up on your phone when you scanned your own flyer, would you know which company it belonged to, or which account to log into when it broke? We make a QR checker, and before this exercise it recognised only four of them.

Three more things we noticed along the way.

Some of the showcase codes are already dead. Five of the 77 ended on a "not found" or "gone" page: two of the ten on QRCode AI's site, two of Flowcode's, and one qrfy.io code in an example picture on Canva's page. These are the codes chosen to sell the product.

Seven use http:// instead of https://. They still work, but the first hop travels unencrypted, and some phones warn about it.

One company, three domains. We typed made-up codes into qrco.de, l.ead.me and q-r.to. All three sent us to the same help article on QR Code Generator's support site, titled "Why are there different short URLs domains?". A made-up code on qr.io sent us to the company's home page. On qrs.ly, scnv.io and bit.ly we got a 404.

Why this matters when you print

A code that holds a forwarding address is called a dynamic code, and it isn't a trick in itself. It lets you change the destination after printing and count scans, and plenty of people want that. We offer tracked codes ourselves.

The catch is that the code now has a landlord. It works while your account with that company is in good standing and the company keeps that domain running. When a trial ends, a card fails, or a free plan is redesigned (Bitly's free plan went down to two QR codes a month and added an interstitial page in front of free links), the squares on your 500 menus are exactly as valid as before. They just lead somewhere you didn't choose.

And you can't tell by looking. A plain code and a forwarding code are both black squares. The only way to know is to read the text inside.

Read your own code in ten seconds

With your phone: point the camera at the code and don't tap. The little label that appears shows the address. If it's your website, the code depends on your website and nothing else. If it's a short name you don't recognise, the code depends on whoever owns that name.

With our checker: drop a photo or a screenshot of the code into Will this QR code die?. It's read in your browser, nothing is uploaded and the link is never opened. It tells you what the code holds and who it depends on. After today it also knows the thirteen forwarding domains we hadn't seen before.

The b59.link QR checker with the text of a decoded sample code, http://l.ead.me/bb2BVm, and the verdict: can die, this code depends on QR Code Generator (Bitly)
One of the 77, pasted into the checker. It names the company behind l.ead.me and flags the http:// address.

Before you send anything to the printer

1. Decide whether you need to change the destination later. If the menu will always live at yourcafe.com/menu, make a plain code with that address in it. It will work for as long as your website does, and no company can switch it off, including us.

2. If you do want to change it or count scans, own the forwarding address. Best is a path on your own domain, such as yourcafe.com/m, that you redirect yourself. Second best is a short-link service whose terms you've read.

3. Read the code on the proof. Not the file you uploaded: the PDF the printer sends back. Check the address, and check that it starts with https://.

4. Write down the account. Which service, which login, which card. Most "dead" codes are a lapsed account that nobody remembers opening.

5. Already printed with a forwarding code? Log in while the account still works and make sure the destination is right, then keep that one account alive until the print run is used up. It's cheaper than reprinting. Use a plain code for the next batch.

Where we stand

We run a link shortener and QR generator, so we are exactly the kind of landlord this article is about. Our plain QR codes hold your address and never touch our servers. Our tracked codes go through b59.link, and they need us to stay online; we say so on the page where you make them, next to what we promise about them. There's no trial that ends and no subscription. If you need a code to outlive every company involved, make the plain kind.

Make a plain QR code that holds your own address, or a tracked one that counts scans. No trial clock, no page in front of your link.

Make a QR code

How we counted, and the limits

Pages fetched on 10 October 2026 from qr-code-generator.com, me-qr.com, qrcode-tiger.com, qrcodechimp.com, qrfy.com, qr.io, qrstuff.com, uniqode.com, flowcode.com, qrcodekit.com, qrcode-monkey.com, scanova.io, the-qrcode-generator.com, bitly.com, canva.com and qrcode-ai.com. Up to 45 images per page, decoded with the open-source ZXing library; 133 images contained a readable code, 77 of them different (one retail barcode not counted). Each address was requested once with a phone browser's user agent. Sample codes on a marketing page are not a random sample of customers' codes, and some sit inside stock photos, so read the numbers as "what these companies show", not as market statistics. We didn't sign up for any of the services or test what happens when a trial ends. Stories: an Indie Hackers threadand QRplanet's help page; Bitly's free plan: u2l.ai review and Bitly's own FAQ.