Links, wifi, vCards. Renders live, downloads as PNG.
Type or paste your content, pick a size, and the code renders instantly in your browser. Higher error correction adds redundancy so the code still scans when part of it is dirty, printed small, or covered by a logo — at the cost of a denser grid.
The three presets cover most needs. Website URL is the common case and encodes the address exactly as typed, so include the https:// — a code without it will open in some scanners and fail in others. WiFi encodes a network name and password so a guest joins by pointing a camera at a card rather than typing a long key. vCard packs a whole contact record, and scanning it offers to save the person straight to the phone book.
For a URL, paste the full address. For WiFi, replace the network name and password in the pattern and leave the WPA security type unless your network is genuinely open or still on WEP. For a vCard, work through the five sections and leave out anything you do not want public — a QR code on a poster is readable by anyone who walks past it.
The size slider controls the exported pixel dimensions, not how much data fits. Larger export means a sharper printed edge. For anything going to print, take the size well above what looks adequate on screen, because a scanner needs clean square boundaries and a downscaled code loses them.
Upload a logo and it is drawn in the centre at the size you set. This works because QR codes carry error correction, and the covered area is treated as damage the reader can reconstruct. Keep the logo under about a fifth of the code width, and raise error correction to H before you do it.
Export the PNG, then scan it from the screen with a phone. Then scan the printed proof. A code that reads on a monitor can fail on paper if the print is light, the paper is glossy, or the code was scaled down in a layout program. Test the artefact you are actually shipping, not the file you made it from.
A QR code is a grid of modules — the small black and white squares — arranged in a fixed structure. The three large squares at the corners are finder patterns, and they let a reader work out the orientation and scale of the code from any angle. The smaller square near the fourth corner is an alignment pattern that corrects for the distortion you get when the code is photographed off-axis or printed on something curved. The dotted lines running between the finder patterns are timing patterns, which tell the reader how wide a single module is.
Everything else is data and error correction. As you add characters, the code needs more modules, so it steps up through versions — version 1 is 21×21 modules, version 40 is 177×177. A URL of thirty characters produces a sparse, forgiving code. A full vCard with address and notes can push past version 10, and at that density each module is physically tiny at any given print size. That is the practical reason to keep encoded text short: not a hard limit, but a scanning failure rate that climbs quietly as the grid gets finer.
Error correction uses Reed-Solomon codes, the same family used on compact discs. Four levels exist. L recovers about 7% of the code, M about 15%, Q about 25%, and H about 30%. The redundancy is not free — it occupies modules, so raising the level on the same content makes the grid denser. H on a long vCard produces a code that is technically robust and practically unreadable at business-card size. M is the sensible default for screens and clean print. Go to H only when you are covering the centre with a logo, and shorten the content to compensate.
The blank margin around the code is part of the specification, not decoration. Readers use it to find the edge of the pattern. The standard calls for four modules of clear space. Designers routinely crop it to make a code fit a layout, and it is one of the most common reasons a code that worked in testing fails in production. Leave the margin.
Almost always contrast or size. Inkjet output on uncoated stock spreads slightly, thickening black modules and closing the gaps between them, which a reader interprets as noise. Print a proof at final size and scan it from the real distance. If it fails, either raise the physical size or shorten the content so the grid is coarser.
The logo is covering more than the error correction can absorb. Reduce the logo to about 18% of the code width, and set error correction to H. If it still fails, the content is too long — a dense grid has less spare capacity in absolute terms even at the same correction level.
This is usually a marginal code rather than a phone problem. Older cameras with fixed focus struggle below a certain module size. Treat any code that fails on one device as a code that will fail for a meaningful share of your audience, and make it bigger or simpler.
Check the security type. The pattern uses WPA, which covers WPA2 and WPA3 networks. An open network needs nopass instead, and the older WEP standard needs WEP. Also check for a trailing space in the password, which is easy to paste in and impossible to see.
Some Android contact apps are strict about vCard structure and reject records with unusual characters in the name field. Remove accents and punctuation from the name and try again. iOS is more tolerant, so test on both if the audience is mixed.
The paid services sell one thing that matters: the code points at their server, which redirects to your real destination, so you can change the destination after printing and see scan counts. That is genuinely useful for a campaign. It also means your printed code stops working the day you stop paying, or the day the company folds. Several have. If you want both, encode a short URL on a domain you own and control the redirect yourself — you get the flexibility and the tracking without renting your own print run back from someone.
Most free web generators upload your content to a server to render the image, and a good number of them quietly make the code dynamic so they can insert tracking or advertising later. Reading the terms is worth five minutes. This one renders in the page with no network request, which you can verify by opening your browser network tab and watching nothing happen.
Illustrator and InDesign can generate codes, and if you are already laying out print, that workflow is better than importing a PNG because you get vector output that scales cleanly. Use them for professional print. Use this when you want a code in ten seconds without opening anything.
Not the ones made here. The data is encoded directly into the pattern, so there is no redirect service that can go away. If you encode a URL, the code works as long as that URL does.
A rough rule is one centimetre of code per metre of scanning distance. For a poster read from three metres, print the code at least three centimetres wide and use error correction Q or H.
No. Encoding happens in your browser and the image is drawn on a canvas on your machine. Nothing is transmitted or stored.