Text In, QR Code Out
Type or paste anything — a URL, plain text, a phone number — and the QR code renders live on a canvas as you type. One click downloads it as a PNG with a clean white background and built-in quiet zone (margin), ready to drop into a flyer, slide, or product label. Generation happens entirely in your browser: the content never touches a server, and the code never expires or gets tracked, unlike codes from "free" services that route scans through their own redirect.
What You Can Encode
| Content | Format to enter | What happens on scan |
|---|---|---|
| Website | https://example.com | Opens the URL |
mailto:hi@example.com | Opens a draft email | |
| Phone | tel:+15551234567 | Offers to dial |
| Wi-Fi | WIFI:T:WPA;S:MyNetwork;P:password;; | Joins the network |
| Plain text | Any text | Displays the text |
Always include the https:// prefix for URLs — without it, some scanner apps treat the content as plain text instead of a link.
Error Correction: Why QR Codes Survive Damage
QR codes carry redundant Reed-Solomon data, so they still scan when partially obscured or scuffed. Four standard levels exist:
| Level | Recoverable damage | Typical use |
|---|---|---|
| L | ~7 % | Clean digital displays |
| M | ~15 % | General use (this tool's default) |
| Q | ~25 % | Industrial labels |
| H | ~30 % | Codes with logos punched in |
Tips for Codes That Actually Scan
- Shorter is better: more characters mean a denser module grid. A 30-character URL produces a much coarser, easier-to-scan code than a 200-character one with tracking parameters. Trim long links or shorten them first.
- Test before printing: scan the downloaded PNG from a real phone at the intended viewing distance — the rule of thumb is a print size of at least 1/10 of the scan distance.
- Keep the quiet zone: the white margin around the code is part of the spec. Don't crop it or place the code flush against dark artwork.
Generating a QR code for a link with special characters? Encode it first with the URL encoder. Building a shareable page URL? Create a clean path with the slug generator.