Launch offer7 days of Pro, freeClaim it

Utilica

I got tired of QR codes that expire unless you pay, so I built free ones

The free QR code that stops working after you print it is a business model, not an accident. How the trick works, why Utilica's codes are permanent, and where it goes next: menus and pages that take payment.

Utilica6 min read

Two printed QR codes side by side: a faded one marked trial ended, and a clear one marked still works

Here is something that happens to small businesses every day, and almost nobody warns them about it.

You search for a free QR code generator. You make a code for your menu, and it works. You print it on two hundred table cards, a window sticker and the side of the truck. A couple of weeks later a customer scans it and lands on a page saying the code is no longer active. The fix is offered on the same page: a subscription.

Nothing broke. That is the product working as designed.

I got tired of it, so I built a QR code generator where it cannot happen. This is why, how the trick works, and where Utilica goes from here.

The trick, step by step

It works like a bait and switch, and it depends on one fact most people never have a reason to learn: there are two kinds of QR code.

A static code holds your address in the pattern itself. A phone reads the address and opens it. No company sits in the middle.

A dynamic code holds a short address that belongs to the generator you made it with. Every scan goes to that company first, and the company sends it on to you. That is useful: you can change where the code goes after printing, and scans can be counted. It also means the company can switch your code off.

Once you know that, the trick is easy to follow:

  1. The generator is advertised as free.
  2. It gives you a dynamic code, without making much of the difference.
  3. The code works for the length of a trial, or up to a number of scans.
  4. You print it. Now it is on paper, vinyl and packaging, and it cannot be edited.
  5. The trial ends. Scans land on the generator's page, not yours.
  6. You reprint everything, or you subscribe.

The moment you print a dynamic code, the company behind it is holding something of yours. What matters is what it does next.

What the fine print says

You do not have to take my word for it. This is what two well-known generators say in their own help centers, as they read in October 2026.

GeneratorWhat happens to a free dynamic codeWhere it says so
QR Code GeneratorCodes made in the 14-day trial are "deactivated at the end of the free trial". People who scan one are taken to a service page.Its help center
QR TIGEREach dynamic code on the free plan has a 500 scan limit, and stops working once that is reached.Its help center

To be fair to both: neither hides this if you go looking, and a static code from either keeps working. QR TIGER's free plan is a real free plan, not a trial.

And I have no problem with charging for a QR service. Running redirects for millions of codes is real work and worth paying for. My problem is the order of events. The price arrives after the printing, when saying no costs you a reprint.

From the blogStatic vs dynamic QR codes: which one do you need?A static code holds your content. A dynamic code holds a short address that can be pointed somewhere new. Here is how to choose in under a minute.utilica.app/blog/static-vs-dynamic-qr-codes

So I built the one I wanted

It starts with the plainest thing I could make: a generator with no account, no trial, no watermark and no scan limit. Type a web address, style the code, download it.

The free QR code generator on Utilica, with a menu address typed in and a code ready to download
The free generator. No account, and the code is drawn in your browser.

The code it gives you is static, on purpose. It is drawn in your browser. The address you type never reaches my servers, and neither does any scan. There is nothing for me to switch off, count or charge for. If Utilica closed tomorrow, every code made from a web address there would keep working for as long as your own page does.

Colors, shapes, frames, your own logo, PNG and SVG files are all free too.

Free toolFree QR code generatorMake a QR code right here, free. No account, no trial, no watermark and no scan limit. The code holds your address itself, so nothing can switch it off later.utilica.app/free-qr-code

Why I made them permanent

Static codes are permanent by nature. The real decision was about dynamic codes, the kind that do pass through Utilica. A free account includes three of them, and they do not expire. Not after a trial, not after a number of scans, and not if you pay for a while and then stop.

Three reasons.

A printed code is a promise. Someone trusted the code enough to pay a print shop. That deserves more respect than a countdown.

The redirect is the cheap part. Sending a scan on to its destination is one lookup: this code goes to that address. It is about the lightest thing a web service does. I cannot find a cost in it that justifies switching off something a person has already printed.

I would rather charge for more than charge to give your code back. Utilica has a limit, not a clock. The free plan gives you a set number of codes. Pro, at $7.99 a month, removes the limits and adds full analytics. If you leave Pro, you lose the Pro features. Nothing you have printed goes dark.

The honest limits

A post like this should say where its own promises stop.

  • A dynamic code from Utilica still depends on Utilica being here. That is what dynamic means, for every service. It is why the free generator hands you a static code, and why I tell people to use static for anything that will never change.
  • A code can still be stopped for breaking the rules. A redirect that leads to a scam gets switched off. Otherwise a dynamic code only stops if you pause or delete it yourself.
  • The free plan has limits. Three dynamic codes and ten static ones saved in an account, and as many static codes as you like with no account at all.
  • This is how Utilica makes money: the Pro plan, and a fee if you choose to take card payments. Not from codes you have already printed.

Where this is going: the menu, then the payment

Nobody actually wants a QR code. They want what is behind it.

Most menu codes point at a PDF that has to be pinched and zoomed on a phone. So Utilica also makes the page the code opens: a menu made for a phone, with sections, photos, prices, and a switch for marking something sold out.

Then the obvious step. If the menu is already on the customer's phone, they should be able to order from it. They pick what they want and see one total with tax. Cash App, Venmo or PayPal opens with the exact amount already filled in, and Zelle shows who to pay and how much. The money goes straight to the seller. Utilica never holds it and takes no fee on those payments.

A Utilica page for a bakery on a phone: an item with an Add button, a bookable consultation, and a Pay button showing the total
One page: what you sell, when you can be booked, and the exact amount to pay.

The same page takes bookings and sends payment reminders to clients who owe you. Every code in an account comes with print-ready sheets: table tents, stickers and business cards.

The rule from the QR codes runs through all of it. The free part has to be worth using on its own, and it must never be a trap.

Who it's forOne code on the truck. Orders and payment sorted before they reach the window.A QR code for your truck or stall that opens your menu, totals the order and gets you paid by Cash App, Venmo, PayPal or Zelle, with no card reader and no fee on those payments.utilica.app/for/food-trucks FeatureA page that takes orders, not just clicks.One page for your links, menu and prices. Visitors add items, see the total and pay you in Venmo, Cash App, PayPal or Zelle.utilica.app/features/link-in-bio

If you have a code printed right now

Check it today. It takes a minute.

  1. Scan it and read the address that opens first. If it is your own address, the code is static and nobody can switch it off. If a short address on someone else's domain appears first, it is dynamic and depends on that company.
  2. Log in to wherever you made it. Look for a trial end date, a scan limit, or a plan that is about to lapse.
  3. If it is at risk, make the replacement before the old one stops. A dynamic code cannot be moved to another service, because the printed pattern holds the first company's address. Either keep that plan for as long as the prints are in use, or reprint.
GuideWhy did my QR code stop working?A QR code usually stops because it was a dynamic code and the service behind it switched it off: a trial ended, a scan limit was hit, or a plan lapsed. How to tell in one scan, and what to do.utilica.app/why-did-my-qr-code-stop-working

QR codes do not expire. Business models do that to them.

Make one, print it, and never think about it again. That is how it should have worked all along.

Keep reading