// 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 →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.
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.
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.
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.
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.