Scanned straight from the screen — nothing is uploaded, and the code never expires.
Type a destination above and the code appears here.
Build a QR code for a link, a block of text, a Wi‑Fi network, an email, or a phone number — and see whether it will actually scan. The symbol version and module count are reported live, and the printed size you enter is checked against the 0.4 mm per module that consumer printers and phone cameras can reliably resolve.
Step by step
01Choose what the code carries
A URL, plain text, Wi-Fi credentials, an email, or a phone number. The payload types matter because scanners act on the format — a Wi-Fi payload offers to join the network, a bare string does not.
02Pick an error-correction level
L recovers 7% of a damaged code, M 15%, Q 25%, H 30%. Higher recovery means more modules for the same data, so the pattern gets denser and each module gets smaller at a fixed print size.
03Style it, and add a logo if you need one
Foreground, background, quiet-zone margin, and an optional centred logo with a pad behind it. Keep the contrast strong — scanners read light and dark, not colours.
04Export for the medium
PNG for screens at the pixel size you set, SVG for print because it scales without softening. The print panel shows the physical size at a chosen density so you can check the code is big enough before it goes to press.
Worked example
The same URL at each level. Version and module count are what the tool reports as you type — they are the honest measure of how full a code is.
Given
Recovery capacity against pattern density
L recovers 7% fewest modules, largest per module
M recovers 15% the usual default
Q recovers 25% noticeably denser
H recovers 30% densest, needed for a centre logoEvery level of recovery buys itself with more modules, and more modules in the same square means each one is smaller. On a screen that is free; on a poster read from three metres, or on a label printed at 300 dpi, it is the difference between scanning instantly and not scanning at all. Choose H when something covers the code — a logo, a fold, a laminate — and M the rest of the time.
Before you print it
A logo works because of error correction, not in spite of it
Covering the centre destroys modules; level H can lose 30% of them and still decode, which is the entire mechanism behind branded codes. Keep the logo modest and the level high, and test the printed result rather than the preview.
The quiet zone is part of the code
The blank margin is what tells a scanner where the pattern ends. Cropping it tight, or placing the code against a busy photograph with no border, breaks reads that would otherwise be instant — the margin here defaults to 2 modules for that reason.
Shorter payloads make friendlier codes
Data length drives the version, and the version drives the module count. A shortened link scans from further away than the same destination with tracking parameters attached, simply because each module is physically bigger.
Print needs vector and physical size
A PNG sized for a screen goes soft on paper. Export SVG and think in millimetres: the rule of thumb is a code roughly a tenth of the distance it will be scanned from, so a poster read at two metres wants around 20 cm.
Contrast, and the right way round
Scanners expect dark modules on a light background. Inverting the two — light code on dark — fails on many readers, and low-contrast colour pairings fail on most. Keep the foreground genuinely dark and the background genuinely light.
The code is generated in your browser
No request is made, no short link is created, and nothing is tracked. A Wi-Fi password or a private URL encoded here stays on your machine — worth knowing, given that most online generators route the payload through a server.
The judgement call
The two choices that decide whether the code works where it ends up.
A code on a web page or a slide
M · PNG
Screens have no damage and no print loss. M is ample and keeps the pattern sparse.
A code with a logo in the middle
H · PNG or SVG
Only H has enough redundancy to lose the centre. Test a real scan before it ships.
A poster, sign, or banner
M or Q · SVG
Vector so it stays crisp at any size, and physical dimensions matter more than the level here.
A label, sticker, or packaging
Q or H · SVG
Small print sizes and handling damage both eat modules. The extra recovery earns its density.
Wi-Fi credentials for guests
Wi-Fi payload
The structured format prompts to join the network. A plain-text password just shows the string.
A long URL with tracking parameters
Shorten first
Every character adds modules. A shorter payload scans from further away for the same printed size.
Reference
FAQ
The limit is set by module size, not by overall width. Consumer printers and phone cameras cope reliably at about 0.4 mm per module. A short URL encoding to a 33 × 33 module symbol needs roughly 15 mm; a long URL pushing the symbol to 61 modules needs about 28 mm for the same reliability. Enter your intended printed width and the tool does that arithmetic for you.
Level M is the sensible default for screens and clean printed material. Choose Q or H for anything that will be handled, curved, laminated, or partly covered — a sticker on a bottle, a sign that will collect dust — and always H if you are putting a logo in the middle. Higher levels make the symbol denser, so pair them with a slightly larger print size.
Switch to the Wi‑Fi mode, enter the network name exactly as it is broadcast, choose WPA (the usual choice for any modern router) and type the password. The tool builds the standard WIFI: payload with reserved characters escaped, so a phone camera offers to join the network rather than displaying a string of text.
Yes. Load the logo and set its size — up to about 25% of the code's width is safe at level H, because the error correction can reconstruct the covered modules. Beyond that, scanners begin to fail. Always test a printed sample with more than one phone before committing to a print run.
The usual causes, in order: it is printed too small for its module count, the quiet zone was cropped away, contrast is too low, or a logo covers more than the error correction can recover. Keep the quiet zone at 2 modules or more, use dark on light rather than light on dark, and check the module size figure against the 0.4 mm floor.
They never expire. A QR code is a direct encoding of your content — there is no redirect service, no tracking, and nothing to keep paying for. Everything is generated in your browser, so the content you encode is never transmitted anywhere.
Codes are generated entirely in your browser — the content you encode is never uploaded. Share links deliberately exclude Wi‑Fi passwords.
Keep going
Base64 converter
Turn the exported code into a data URI for an email template.
Image resizer
Fit the exported PNG into a fixed layout slot.
Format converter
Re-encode the PNG for a destination that will not take it.
URL encoder
Check that the link you are encoding is escaped correctly.