Assumptions
- QR Code is a registered trademark of DENSO WAVE INCORPORATED.
- The Wi-Fi, contact and message formats follow the de facto standard documented by ZXing. Some cameras and apps ignore individual fields.
- Capacity depends on the error correction level and the characters used. Non-Latin characters take two or three bytes each in UTF-8.
- Codes are encoded directly with no shortener, so they keep working even if this site goes away.
- Logo overlays are not offered, because shipping them without scan testing produces codes that fail in print.
- Everything runs in your browser; nothing you enter is transmitted or stored.
How it is calculated
- The content is assembled to spec. Wi-Fi becomes
WIFI:T:WPA;S:name;P:password;;and a contact becomes a vCard 3.0 record. - Punctuation is escaped. Wi-Fi escapes
\ ; , : "; vCard escapes newlines, commas and semicolons. - Everything is encoded as UTF-8 so accented and non-Latin characters survive.
- The smallest workable size is chosen automatically, from version 1 (21 modules) up to version 40 (177 modules).
Examples
| Use | Settings | Result |
|---|---|---|
| Guest Wi-Fi card on a café table | Wi-Fi · level Q | Guests join without typing the password |
| Contact details on a business card | Contact · save as SVG | Scanning adds you to the address book |
| Shop location on a flyer | Map coordinates | Scanning opens the maps app |
| Sign-up link on a poster | Website link · level M | PNG at 1024px, ready to place |
Common mistakes
- Scan the printed version before you commit. Reading fine on screen does not guarantee it reads on paper. Print at final size and try several phones.
- Do not print it too small. More content means denser modules. On a business card, keep it at 2cm or larger.
- Do not invert the colours. Many camera apps fail on a light pattern over a dark background, and the two colours need clear contrast either way.
- A Wi-Fi code contains the password in the clear. Anyone who scans it can read it, so use a guest network anywhere the public can see the code.
FAQ
Will this code stop working later?
No. The content you enter is encoded directly, with no redirect through this site. Some free QR services quietly route the code through their own domain so they can charge later or show ads, and when that service shuts down every printed code dies with it. Nothing here works that way. Of course, if the address you encoded disappears, the code points nowhere.
Can the Wi-Fi password contain punctuation?
Yes. The Wi-Fi QR format requires a backslash before a semicolon, colon, comma, double quote or backslash, and plenty of generators skip that step. When they do, a single semicolon in the password produces a code that scans to the wrong thing. This tool escapes them properly.
Which error correction level should I pick?
A QR code carries spare data so it still reads when part of it is dirty or covered. L recovers about 7%, M about 15%, Q about 25% and H about 30%. Higher levels need more modules, making the pattern denser. M is fine on screen; choose Q or H for stickers, labels or anything that will get scuffed. If you plan to place a logo over the middle, you need H.
How much text fits?
At the largest version with level L, a code holds 7,089 digits or 4,296 alphanumeric characters. Accented and non-Latin characters take two or three bytes each in UTF-8, so far fewer fit. Long text also makes the pattern dense enough that small printing becomes unreadable. For anything long, encode a link rather than the text itself.
PNG or SVG?
Choose SVG if the code will be printed or resized later; it stays perfectly sharp at any scale. Choose PNG to drop straight into a document or chat. The PNG is 1024 × 1024, large enough to fill a good part of an A4 page without softening.
Does anything I type get uploaded?
No. The code is generated entirely in your browser and nothing is sent to a server. That means a Wi-Fi password or a contact card is safe to enter. Closing the page discards it.
Can I put a logo in the middle?
Not here. A logo covers part of the data, so it only works if you raise error correction to H and then test the result on real phones. Offering the feature without that testing step would produce codes that fail after printing. If you need one, save the SVG, add the logo in a vector editor, and scan the result yourself before committing to print.