QR Code Generator

Create a QR code from a URL, text, WiFi network, contact card, email, SMS or phone number. Everything is generated locally in your browser — nothing you type is ever uploaded.

Files never leave your device
1024px

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.

Tip: Not sure which error-correction level to use? Medium is a safe everyday default. Save High for anything that will be printed small, laminated, or handled roughly — it tolerates the most damage before a scanner starts to struggle.

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.

Frequently asked questions

Is my WiFi password or contact information uploaded anywhere?
No. Every QR code is generated by a WebAssembly module running inside your own browser tab. The content you type — including a WiFi password or a vCard's phone number and email address — is turned into a QR code entirely on your device; nothing is sent to a server at any point.
What is the WiFi QR code actually for?
Point a phone's camera at it, and the phone offers to join that network directly, without anyone having to type the network name or password by hand. It bundles the network name, password and security type into one scannable code, which is handy for guests or for a printed card next to a router.
Which error-correction level should I pick?
Higher levels rebuild more of the code if part of it gets damaged or obscured, at the cost of a denser, more crowded pattern. Low suits a code that will stay clean and only ever be shown on a screen; High is worth choosing for anything headed to print at a small size, or anywhere it might pick up scuffs and smudges over time, such as a code on product packaging.
Can I download both an SVG and a PNG?
Yes. SVG is a scale-free vector format, so it stays crisp printed at any size from a business card to a poster. PNG is rendered at the pixel size you choose with the size slider, which is usually the simpler choice for pasting straight into a slide deck or a webpage.
Is there a limit on how much content I can put into one QR code?
Yes — up to 4,096 characters, which is comfortably beyond what any QR code can actually hold. Real QR codes top out well before that point depending on the error-correction level and content type, so this limit exists mainly to reject an absurdly long input early with a clear message, rather than to describe a code you could realistically scan.