How to use QR Code Generator
What it does & when you need it
A QR code is a two-dimensional barcode that stores a short blob of text — most often a URL — as a grid of black and white modules a phone camera can read in a fraction of a second. This tool turns any string you type into a scannable code and renders it as a crisp, resolution-independent SVG you can drop into a slide, a poster, a business card, or a print run without it ever going blurry. It is the fastest path from "I have a link" to "people can scan it," and because the whole thing runs in your browser, the URL or Wi-Fi password you encode never leaves your machine.
Reach for it when you need a QR for a landing page, an app-store link, a
conference badge, a restaurant menu, a "connect to guest Wi-Fi" card, or a
mailto: on a flyer. If your link is long or full of tracking parameters, tidy
it up with the URL Encoder first so the code stays as small
and readable as possible.
How to use
- Type or paste your content into the text or url buffer, or press Sample to load an example link. The preview redraws live as you type.
- Pick an Error correction level from the dropdown. M is a sensible default; raise it to Q or H if the code will be printed small, placed on a curved surface, or overlaid with a logo.
- When the code looks right, click Download SVG to save a vector file, or
press Copy SVG (or
Ctrl/Cmd+Enter) to copy the raw markup straight into your own page or component.
Things worth knowing
Error correction is a trade-off between resilience and density. The four levels — L, M, Q, and H — let a scanner reconstruct roughly 7%, 15%, 25%, and 30% of a damaged code respectively. That redundancy is why a QR with a logo punched through the middle still scans: the missing modules fall inside the recoverable budget. The catch is that higher levels store the same payload in a denser grid of smaller modules, so an aggressive H code printed tiny can actually be harder to read than a clean M code. Match the level to the abuse the code will take, not to a vague sense that "more is better."
Capacity depends on what you encode. A QR does not hold a fixed number of characters; it holds the most when the data is purely numeric, fewer when it is alphanumeric (uppercase letters, digits, and a handful of symbols), and fewer still for arbitrary bytes such as a mixed-case URL or UTF-8 text. As you add content the encoder steps up to a larger "version" — a bigger matrix with more rows and columns — which is why a long, parameter-heavy link produces a busier, denser image than a short one. Shorter input keeps the code sparse and easy to scan.
The quiet zone is not optional. Every QR needs an empty margin of at least a few modules around its edge; the specification calls this the quiet zone, and many scanners simply fail to lock onto a code that butts right up against other ink. That is why the preview here always sits inside white padding — do not crop it away when you place the image, or you will get a code that looks fine to you but refuses to scan in the wild.
"Wi-Fi codes" and "contact codes" are just text conventions. The QR itself
only ever stores a string. What makes a phone offer to join a network or save a
contact is an agreed-upon prefix that the camera app recognizes — for example
WIFI:S:MyNetwork;T:WPA;P:secretpass;; for Wi-Fi, or a BEGIN:VCARD block for a
contact card. Type the payload in the exact format and this tool will encode it
verbatim; there is no separate "Wi-Fi mode," just the right text. If you need a
random value to embed, the UUID Generator pairs well,
and once you have a code you can hash the underlying URL with the
Hash Generator to fingerprint a batch.