QR Generator

// what it does and why

A QR code generator that runs entirely inside the page you are looking at. Type a link, press Enter, download a PNG. Nothing is uploaded and nothing is stored.

Open it →
220 pxImage size
15%Damage it survives
0Uploads
EnterGenerates it

What it does

Type or paste something into the box and press Enter, or click Generate. A code appears on a white card at 220 pixels square, with a download button underneath it. The box arrives pre-filled with my own address and the code is already drawn when the page opens, so you can see the thing working before you touch it.

It takes any text, not only links. A plain sentence, an email address, a wifi join string. The code carries whatever you put in, and whatever scans it decides what to do with that.

Why it exists

I needed a QR code once and went looking at the free sites. Most want an email address before they will give you anything. Several stamp their own logo into the middle. And a lot of them do something quieter and worse: the code they hand you does not point at your link at all. It points at their domain, which then redirects. That lets them count every scan, and it means your printed code stops working on the day they decide it should.

I wanted a code that points at exactly what I typed, permanently, with nobody in the middle. That turned out to be one page and one small open source library, so I built it rather than keep visiting somebody else's.

Nothing leaves your machine

There is no server involved. The code is drawn by a script running in your browser, on your computer, from the text sitting in the box. That text is never sent anywhere and never logged. This is not a promise in a privacy policy, it is just the shape of the page: there is nowhere for the text to go.

The consequence worth knowing: I cannot see what you generate, so I also cannot recover it. Close the tab and it is gone. Download the PNG.

The download button is not a convenience

Right click is switched off across this page, so Save image as is not available. On most sites a download button under an image is a nicety. Here it is the only way out, which makes it load bearing.

It also appears a fraction of a second after the code does, because the page waits for the drawing to finish. If it feels slightly late, that is why.

What it will not do

The setting you cannot see

Every QR code carries spare redundancy so it still scans when part of it is creased, dirty or covered by a thumb. There are four levels of it, and this tool uses the second, which recovers from roughly fifteen percent of the code being unreadable. That is the normal choice for something living on a screen or a clean printed page. The higher levels survive more damage, but they spend the extra room on more squares, so the same link gets a denser grid and every square gets smaller. More robust and harder to scan at the same time.

The thing worth taking away: a QR code is a picture of a link, not a link. Once it is printed it cannot be edited. That is the whole reason the tracked, redirecting ones exist, and the whole reason I did not want one. A code routed through somebody else's domain can be changed later, which also means it can be switched off later. This one can only ever do the single thing you made it do.