QR codes
QR code generator
Pick what goes inside and the code appears straight away. Wifi, contact, link or event, with colour and a logo. Plus a tab for reading other people's codes before you trust them.
Neither your wifi password nor your contact card details nor the image you feed the reader travel to any server.
Why it matters where a wifi QR is generated
A wifi QR code carries your network password in plain text. Generating it on a site that does the work server-side means, quite literally, writing the key to your network out for a stranger. The contact code is the same story: name, phone, address and email, all together and tidy. Here the code is drawn in your tab and no request carries it anywhere. And in the reader tab, the photo you upload is analysed here too: neither the image nor whatever the code contains leaves the page.
How it works
-
Choose what goes inside
Link, wifi, contact, event, location… Each type has its own form, and the code redraws as you type.
-
Give it the look you want
Colour, dot shape and a logo or emoji in the centre. If the colour pair will not scan, it tells you.
-
Download it
PNG at whatever resolution you need, or SVG if it is going to print. And if you need hundreds, the third tab pulls them from a CSV.
What people use it for
- The wifi in a café or at homeA little card on the counter and guests get on without the password being read out twenty times a day.
- A business cardA QR in the corner and whoever scans it saves your whole contact without typing a thing.
- A restaurant menuA link to the menu you can change without reprinting anything, with the venue's logo in the centre.
- An eventDate, time and place on the poster: whoever scans it drops it into their calendar in one go.
- Numbered tables or assetsTwo hundred codes from a CSV, each with its own file name, in a single ZIP.
- Checking a suspicious QRThat code stuck on the parking meter: look at it here before opening it on your phone.
The wifi QR code, done properly
It is among the most searched for and the worst handled. The format of a wifi QR is WIFI:T:WPA;S:name;P:key;;, and in there the semicolon and the colon are field separators. If your password contains either and the generator does not escape it, the phone reads the password cut off at that point and the connection attempt fails without saying why: you do not get a format error, you get “incorrect password”.
With a password as ordinary as P@ss;word:2026, a careless generator produces a code the phone reads as P@ss. Here the backslash, semicolon, colon, comma and double quote are all escaped, so that password works as it stands. Same for the network name: an SSID like Café;Central survives intact.
And the part that matters: the password never leaves your browser. A wifi QR is the key to your network; generating it on someone else's server is handing it over.
The contact card, with the surname in the right place
The contact code uses the vCard format, where the comma and semicolon also carry meaning. A surname like Pérez, Jr. or a company like Beds; and Kitchens break the record unless they are escaped, and the result is a contact with its fields shuffled. Here they are escaped, and the structural separators — the ones dividing first name, surname, street, city and country — stay exactly where they belong.
The card is generated as version 3.0, which is the one both Android and iOS import without complaining, and with the full-name field included: without it, many phones refuse to save the contact at all.
Colour, shape and a logo, without wrecking the code
You can change the code and background colour, pick from four dot and corner styles, and put a logo or emoji in the centre. With two automatic warnings that head off the classic mistake of printing a thousand flyers carrying a QR that does not scan.
The first is contrast. A reader tells the modules apart by difference in luminance, so below 3:1 no phone will manage it, however well the brand colour sits. The tool computes the real ratio and says so: under 3 in red, between 3 and 7 as borderline that may fail in poor light or on cheap paper. It also warns when the code ends up lighter than the background: most phones read that inverted, but some older scanners only understand dark on light.
The second is error correction. Putting something in the centre covers modules, so the moment you pick a logo or emoji the level rises automatically to H, the highest, which recovers up to 30% of a damaged or covered code. That is what keeps a QR with a logo working. Even so, with a large logo it is worth test-scanning with a phone before sending anything to print.
The reader: look before you open
Malicious QR codes are not hypothetical. The usual form is a sticker over the real code on a parking meter, a restaurant menu or an event poster, leading to a page that imitates the real one and asks for a card. Since the destination is invisible until the phone has already opened it, the defence is to read the code before opening it.
The second tab does exactly that: upload the photo or use the camera, and it shows you what is inside. If it is a link, it inspects it and warns when it finds any of these:
- The @ trick. In
https://[email protected]/everything before the “@” is decoration: the real destination isevil.ru. One of the most-used deceptions, and almost nobody spots it. - Letters from another alphabet mimicking Latin ones, so “paypal” looks like paypal without being it.
- A well-known brand in the wrong place:
paypal.com.verify.topis not paypal, it isverify.top. - Shorteners, which hide the destination until you open it.
- Unencrypted connections, numeric addresses and domains with too many levels.
When it finds something serious, the warning appears before the open button, and the button changes appearance. Schemes that are not http or https never become a clickable link at all.
Why a QR won't scan, and what size to print it
Four causes account for nearly every case: too little contrast, too small for what it holds, no white margin around it — the code needs a quiet zone of about four modules on each side, which the downloaded image already includes, so don’t crop it off in your layout — and a logo too large, covering more than the correction can recover.
On size, the rule of thumb is one tenth of the reading distance: to read it from 30 cm, about 3 cm across; for a poster read from 3 metres, about 30 cm. Below 2 cm it starts to struggle even with good printing. And mind the content length: the more text you put in, the more modules the code has and the bigger it must be printed. Shortening the link is nearly always a better idea than enlarging the poster.
For print, use the SVG: it is vector, so the same file serves a business card and a billboard. PNG is for screens and social media.
If what you need is product barcodes or adhesive labels rather than QR codes, the barcode generator does that — and lays out the label sheet aligned for your printer.
Frequently asked questions
Why won't my QR code scan?
Almost always one of four reasons: too little contrast (you need at least 3:1, and above 7:1 is comfortable), too small for what it holds, no white margin around it, or a logo too large in the centre.
The tool warns you about the contrast by itself while you pick the colours.
What is QR error correction?
Redundant information stored inside the code itself so it still reads when part of it is covered, scratched or badly printed. Four levels: L recovers up to 7%, M 15%, Q 25% and H 30%.
More correction means more modules for the same content, so the code comes out denser. M is used here, and it rises to H by itself as soon as you put something in the centre.
How big should a QR code be printed?
Rule of thumb: one tenth of the reading distance. To read it from 30 cm, about 3 cm across; for a poster at 3 metres, about 30 cm. Below 2 cm it starts to struggle.
Each module should be at least 0.4 mm in offset printing, and considerably more at home or in screen printing. Longer content means more modules: shortening the link usually beats enlarging the poster.
Is my wifi password uploaded anywhere?
No. The code is generated in your browser and neither the network name nor the password travels anywhere. They are not stored either: reload and nothing is left.
Worth stating because a wifi QR carries the password in plain text. Generating it on a site that processes it server-side is handing over the key to your network.
Why does my wifi QR fail when the password has odd characters?
Because in that format the semicolon and colon are field separators. If the password contains one and it is not escaped, the phone reads it cut off there and says “incorrect password” with no further explanation.
A silent bug, and a very common one. Here the backslash, semicolon, colon, comma and double quote are escaped, so P@ss;word:2026 works as it stands.
How do I know whether a QR code is dangerous?
By reading it before opening it, which is what the second tab does. The usual fraud is a sticker over the real code on a parking meter, a menu or a poster.
It warns about the @ trick, domains written with letters mimicking Latin ones, well-known brands in the wrong part of the address, shorteners, and unencrypted connections.
PNG or SVG?
PNG for screens and social media. SVG for print: being vector it loses no sharpness however large you make it, so the same file serves a business card and a billboard.
Can I generate many codes at once?
Yes, up to 200 from a CSV. You pick which column holds the content and which names the file, and a ZIP downloads with one code per row. The CSV is read in your browser and is not uploaded anywhere.
Do the codes expire or stop working?
Not these: they are static codes, the content lives inside the drawing itself, and they will work as long as whatever they point at exists.
What does expire are the “dynamic” QR codes some paid services sell, which really point at their server and stop working if you stop paying. If yours is a link, point it at an address of your own and you depend on nobody.