What This Tool Does
Pick a content type — URL, plain text, WiFi network, vCard contact, email, SMS, or phone number — fill in a few fields, and a QR code builds itself instantly. Every code is generated by a WebAssembly module compiled from Rust, running entirely inside your browser tab: a WiFi password or a vCard's phone number and email address never leaves your device to become a scannable code.
How to Use It
Choose a preset tab that matches what you want to encode, then fill in its fields — a single URL, a WiFi network's name and password, a vCard's contact details, or the fields for an email, text message, or phone number. The preview updates live as you type. Adjust the error-correction level, foreground and background colors, and size, then download the result as an SVG or a PNG once it looks right.
WiFi & vCard QR Done Right
Two of the content types here hide a correctness trap that catches a lot of QR generators. The WiFi QR format packs the network name, password and security type into one string, separated by punctuation such as a semicolon, a comma and a colon. If the password itself happens to contain one of those characters — or a backslash or a quotation mark — it has to be escaped first, or a phone reading the code will misread where one field ends and the next begins. This tool escapes those characters automatically as you type, so a password like Guest;Pass,2024 still joins the right network on the first scan, with no need to know the format's own escaping rules yourself. The vCard preset applies the same care to its own escaping and line-folding conventions.
Error correction is a separate dial worth understanding on its own terms. A QR code encodes its content with extra redundancy so a scanner can still recover it even if part of the code is dirty, torn, or partly covered — each of the four levels trades a denser pattern for more tolerance of that kind of damage:
- L — recovers from roughly 7% damage, the least redundant and most compact pattern.
- M — recovers from roughly 15% damage, a reasonable everyday default.
- Q — recovers from roughly 25% damage.
- H — recovers from roughly 30% damage, the densest pattern but the most forgiving of a scratch, a fold, or even a small logo placed over part of the code.
A code that will only ever be viewed on a screen can comfortably use Low or Medium; anything headed for print — especially at a small size, or somewhere it might get scuffed — is safer at Quartile or High.
Limits
Content is capped at 4,096 characters, well beyond what any real QR code can hold at any error-correction level. The limit exists to reject an absurdly long input early with a clear message, not to describe a code you could actually scan.
Where to Go Next
Already have a QR code and need to read what's inside it? The QR Scanner decodes QR codes straight from an uploaded image or screenshot, including more than one code in the same picture. Need a 1D barcode instead — for a retail product or a shipping label rather than a QR code? The Barcode Generator covers EAN-13, UPC-A, Code 128 and more, generated the same client-side way.