Free QR code generator

Make a QR code.
It is already yours.

Type, style, download. The code is built in your browser and never leaves it: no account, no upload, no email gate before the download button. A static code carries its content in the pattern itself, so nothing you make here can ever expire.

static codes never expire · no signup · made in your browser

Free forever · no signup made in your browser · never uploaded

previewing taproute.io · paste your link to make it yours

taproute

Scan safety

Testing…
Print at least
10mm · reads from 10cm

Free codes carry a small taproute mark. Remove it →

Want to edit the destination after printing? Make it dynamic →

The honest mechanics

No server, no subscription,
nothing to expire.

A static QR code encodes your link, WiFi network or contact card directly in the modules. The phone that scans it decodes it on the spot; no request is made to us or to anyone. That is why a static code from any generator, including this one, keeps working for as long as the thing it encodes stays true. "QR codes that expire" are dynamic codes on a trial plan, which is a business decision, not a property of QR codes.

The trade is just as plain: because the content is printed into the pattern, a static code can never be re-pointed and never measured. Fine for a WiFi card on the fridge; the moment a code goes on packaging, menus or anything you cannot cheaply reprint, you want the dynamic kind, where the destination stays editable after printing.

What you get

Styled like the paid studio.
Because it is the same renderer.

10 content typesURL · WiFi · vCard · email · SMS · phone · WhatsApp · text · event · location
8 presetsone-tap styles, all print-checked
8 module stylesplus 5 corner styles
3 framesborder, caption tag and scan-me label
  • Solid, linear and radial fills, a center logo, and a live scan check: the studio decodes your exact design back before you download it, and tells you the smallest print size that still scans.
  • One renderer draws this preview, the paid studio, the exported file and the served image. A separated-dots style exists in that renderer and is deliberately not offered anywhere: it fails strict decoders, and a code that scans on your phone but dies at a till is a defect, not a style.
  • The free download is a print-resolution JPEG with a small taproute mark. The clean SVG and PNG, with no mark, come with a free account · that is the whole catch, stated up front.

When static is not enough

Printed the wrong link?
Static cannot forgive that.

A dynamic code encodes a short URL instead of the content, so the destination stays yours to change after printing, and every scan can be counted. That is the paid product, on prepaid credits rather than a subscription. The honest comparison lives in static vs dynamic; no fear required, static codes really do work forever.