Toolium

QR Code Generator

Create QR codes from any text or URL instantly

100% client-sideFree, no signup
128px512px

L=7% M=15% Q=25% H=30% recovery

Enter text to generate

Why QR codes refuse to die

People wrote off QR codes for years, and I understand why. They sat on flyers and cereal boxes as a gimmick nobody scanned. Then 2020 arrived, restaurants needed contactless menus, phone cameras started scanning codes without a separate app, and the format went from novelty to furniture. Now they open menus, join Wi-Fi networks, save contacts, and pay for parking. The underlying idea held up because it solves one stubborn problem well: moving a piece of text from a printed surface into a phone without anyone typing it.

One thing I want to be upfront about, because most QR generators are not. Many free services route your code through their own redirect URL, which means they log every scan and can break your code if the service shuts down. This tool does neither. The code is built in your browser from the exact text you enter, nothing leaves your machine, and the result encodes your URL directly with no tracking hop in the middle. You download it as a PNG.

The mechanics that decide whether your code scans

Error correction is the feature that made QR codes practical in the wild. Every code carries redundant data, and you pick how much: L survives 7 percent damage, M survives 15, Q survives 25, and H survives 30. Higher levels tolerate smudges, wrinkles, and even a logo pasted over the center, but the extra redundancy makes the grid denser and harder to scan from a distance. I default to M. If you plan to drop a logo into the middle afterward, pick H, since lower levels lack the redundancy to survive that reliably.

Understand what static means before you print ten thousand stickers. The data lives in the pattern itself, so a static code cannot be edited once it exists. If the URL changes, the code is dead. Dynamic codes work around this by encoding a redirect you can repoint later, which is useful, but it puts a third party between your reader and your content. For anything you control, such as a page on your own domain, a static code pointing at a stable URL is the safer bet.

Payload length matters more than people expect. A version 40 codeholds about 4,000 alphanumeric characters, but a 500 character paragraph produces a dense mess while a short URL produces a clean, sparse grid. Shorten the URL first. For sizing, print at 2x2 cm minimum for close-range scanning, and scale up so the side length is at least one tenth of the viewing distance. Leave a white margin, the quiet zone, around the code. Scanners use that border to find the edges, and artwork that crowds it is the most common reason a perfectly good code fails.

Before you print it

Can a QR code do more than open a URL?
Yes. Structured prefixes tell the scanner what to do with the payload. A vcard prefix saves a contact, mailto composes an email, tel dials a number, and the WIFI format (WIFI:S:NetworkName;T:WPA;P:Password;;) offers to join a network. Phone scanners recognize these and suggest the matching action.
What size should I export, and can I get an SVG?
The size slider runs from 128 to 512 pixels and defaults to 256, which covers screen use. Export is PNG only, so for print push the slider to 512, keep the payload short so the grid stays sparse, and scale the PNG up in your layout app, checking on a phone that it still scans.
Why does my code fail to scan even though it looks fine?
The usual suspects are density and margin. Long payloads pack the grid so tightly that cameras struggle at a distance, so shorten the URL. A missing quiet zone around the code, low contrast between the code and its background, or printing below 2x2 cm will also defeat scanners. Test with a real phone before you commit to a print run.