QR Code Generator

[ QR CODE ]
Size25 × 25
Version2
Capacity used77%

Higher error correction survives more damage but needs a bigger code for the same content.

[ WHAT THIS IS ]

A QR code for a link, a Wi-Fi network or a contact card. The content is written into the pattern itself, so the code is permanent: it does not point at us, there is nothing to renew, and no one is counting the scans.

The Wi-Fi and contact tabs matter more than they look. Both formats use punctuation as structure — a semicolon ends a field in a Wi-Fi payload, a comma separates values in a contact card — so a password containing one has to be escaped or the phone joins with the wrong password and the code seems simply broken. That escaping is done here; a good many generators skip it.

The encoder is written into the site rather than pulled from a package, because the calculation layer carries no third-party code at all. On a page where people type their home Wi-Fi password, that is worth the effort — and it is checked against libqrencode, an independent implementation, across every one of the forty sizes at all four error-correction levels.

[ QUESTIONS ]

Is my Wi-Fi password sent anywhere?

No. The whole encoder runs in this tab — it is part of the page, not a service it calls. Nothing you type reaches our servers, and no request carrying it is ever made. That matters most on the Wi-Fi tab, which exists to encode the password to your own network.

Does the code expire, or stop working?

Never. A QR code is not a link to us — the content is written into the pattern itself, so the code works forever with no account, no tracking and nothing to renew. Services that offer "dynamic" codes point at their own server first, which is why those stop working when the service does.

What is error correction, and which should I pick?

Spare data woven through the code so it still reads when part of it is dirty, torn or covered. Low recovers about 7%, High about 30% — but the spare data takes room, so High needs a bigger code for the same content. Medium is right for a screen. Choose High for anything printed, outdoors, or on a curved surface.

Why did my code get bigger when I added a few characters?

QR codes come in 40 fixed sizes, so capacity goes up in steps rather than smoothly. Crossing a boundary jumps to the next size. Lower case also costs more than upper case: the compact alphabet has no lower-case letters, so HTTP://EXAMPLE.PH encodes smaller than the same address in lower case.

Can I use my brand colours?

Within limits, and the page will tell you when you have passed them. A scanner only distinguishes dark from light, so the two need a clear difference — the tool warns below about 4:1. It also warns if you invert them, because most scanners will not read a light-on-dark code however good it looks.

Why does it need a white border?

The quiet zone. The standard requires four clear modules on every side, and it is the commonest reason a code will not scan — pasted flush against text or a photo, the scanner cannot find where the code ends. Both downloads include it; do not crop it off.

Will it scan if I print it small?

Up to a point. As a rough guide the code should be at least a tenth of the distance it will be scanned from — 10cm across for a metre away. More content means more, finer modules at the same printed size, so keep the content short and the code will read from further away.

[ HOW IT WORKS ]
The three squares are for the scanner

The big squares in three corners are finder patterns. Three, not four, is what tells the camera which way up the code is — a fourth would make it ambiguous. The dotted line running between them is the timing pattern, which tells the scanner how wide one module is.

[ WHAT SURVIVES DAMAGE ]
Low 7%
Medium 15%
Quartile 25%
High 30%

Reed-Solomon parity, the same family of maths that keeps a scratched CD playing. It is what lets a company put a logo over the middle of a code and have it still work.

[ CASE COSTS SPACE ]
HTTP://JUANDESK.COM 11 bits per 2 characters
http://juandesk.com 8 bits per character

The compact alphabet holds digits, capitals and nine punctuation marks — no lower case. A domain is not case sensitive, so shouting it fits more in a smaller code.

[ NEXT ]
42Password GeneratorFor the Wi-Fi password you are about to encode
44Base64 Encoder / DecoderUTF-8 safe, both alphabets, nothing transmitted
43JSON FormatterValidate and tidy a document, with the error located
39Unit ConverterLength, weight, temperature and four more
[ IMPORTANT ]

Codes made here are static — the content is written into the pattern, so they never expire and nothing is tracked. Nothing you type here is sent to our servers — the calculation runs entirely in your browser.