QR codes

QR code generator

Links, Wi-Fi, contact cards, events and payments. Styled how you like, and yours forever: a static code has no service behind it to switch off later.

  • Free, every type
  • No account
  • Made in your browser
One link, every store
1

Website details

Open a link when scanned.

2

Make it yours

Colours, shapes, a logo and a caption, all optional.

Presets

Colours

Shapes

Logo

A logo raises error correction automatically so the code still scans.

Frame

Advanced

How to make a QR code

  1. Pick what the code should doA link, a Wi-Fi network, a contact card, an event or a payment.
  2. Fill in the detailsEverything you type stays on your device. Wi-Fi passwords never leave the browser.
  3. Style itColours, module shapes, your logo in the middle and a frame with a call to action.
  4. Download itPNG or JPG for screens, SVG for a designer or printer, PDF to send straight to print.

The thinking behind it

We wrote the guides first and built the tool because we kept needing it.

Questions

Is it really free?

Yes, every type, every style option and every download format, with no account and no watermark. It's genuinely free, not a trial.

Do my QR codes expire?

Never, and there's no trial that turns them off. A static code encodes your content in the pattern itself, so nothing sits in the middle that can go away or start charging: once printed, it works forever. A dynamic code resolves through this site so you can change its destination later, and we don't expire those either.

What's the difference between a static and a dynamic QR code?

A static code contains your actual data, so it can never break and can never be tracked, but the destination is fixed once you print it. A dynamic code contains a short link that forwards to your destination, so you can change where it points after printing and see scan counts. The trade-off is that a dynamic code depends on whoever runs the redirect.

Can I change where a QR code points after I've printed it?

Yes, if you make it a dynamic code. Turn on the dynamic option for a link, and you get a management page you can use later to point the same printed code somewhere else. Static codes can't be changed, because the destination is physically part of the pattern.

Can I see how many times it's been scanned?

For dynamic codes, yes, and deliberately coarsely: a count, a country and a device class. We don't store IP addresses, we don't set a cookie, and there's nothing that identifies an individual scanner.

Why did a free QR code from another site stop working?

Almost always because it was a dynamic code on a free trial. The pattern is fine, but the redirect behind it was switched off or moved behind a paywall, so the code now leads nowhere. It's the main reason to use a static code for anything you can't cheaply reprint, or to use a redirect on a domain you control.

Is my data uploaded anywhere?

No. The code is generated entirely in your browser. Wi-Fi passwords, contact details and links never leave your device. You can turn off your internet after the page loads and it still works. The one exception is a dynamic code, which by definition has to store the destination so it can forward to it.

Can I put my logo in the middle?

Yes. Upload any image and it's placed in the centre with a quiet patch behind it. Error correction is automatically raised to the highest level so the code still scans.

Which format should I download?

PNG for screens and most printing. SVG if a designer or printer needs vector artwork that scales to any size. PDF if you're sending it straight to print.

How small can I print it?

As a rule of thumb, keep it at least 2 × 2 cm, and bigger if it'll be scanned from further away, roughly a tenth of the scanning distance.

Nothing you type here is uploaded. The pattern is drawn in your browser, so Wi-Fi passwords and contact details never leave this device. Dynamic codes are the one exception: they have to store a destination in order to forward to it.