QR generator
Choose what the code should contain, fill in the fields and download it as SVG for print or PNG up to 600 DPI. The preview updates as you type.
Your file stays on your device: nothing is uploaded
The content format decides what the phone does when it scans the code.
Advanced options
How much of the code can be damaged and still scan. Higher means a denser code.
Printing needs at least 300 DPI. SVG is vector and has no such limit.
Below 4 modules many readers fail to detect the code: it is part of the standard, not decoration.
How it works
A QR code only contains text: what makes it useful is that the text follows the convention the phone expects. A Wi-Fi network wants “WIFI:T:WPA;S:name;P:key;;”, a contact wants a vCard, a payment wants the EPC069-12 format that banking apps recognise. Every format is built and validated: the IBAN is checked with the mod-97 remainder the standard requires, not merely by length, because a wrong IBAN in a QR printed on an invoice does real damage. Drawing uses bwip-js, the JavaScript port of BWIPP, which applies correct quiet zones and error correction levels by itself. While fields still need fixing the preview stays empty: showing a code built on incomplete data invites printing it.
Your files are never uploaded. Anywhere.
Not to a server of ours, not to a third party, never. When you pick a file it stays in your browser’s memory: it is read, processed and written back on your device, and you save the result yourself. There is no path that takes it elsewhere, because there is no server to send it to.
- Processed locallyFormats are handled by WebAssembly code running in your browser, not by a remote service.
- Nothing to upload, nothing to wait forOther services send your file to a server and then send it back to you. Here the file never leaves: there is no upload to wait for.
- No accountNo sign-up, no email, no daily limits to get around by paying.
- No files to deleteOthers promise to erase your files after an hour. We have nothing to erase: they never reached us.