QR Code Generator
Generate QR codes for any text, URL, Wi-Fi, or vCard. Custom size, colors, and error correction. Export PNG or SVG.
What is this for?
QR codes are tiny URLs that a phone camera can read in a fraction of a second. Encode a URL, a Wi-Fi network, an email draft, a phone number, or any short text — print it on a poster, a business card, or a menu, and anyone with a phone can act on it without typing. This generator runs entirely in your browser using the open-source qrcode library. Your input text never leaves the page.
When to use it
- Sharing a URL on a slide, a poster, a business card, or a packaging insert.
- Letting guests join your Wi-Fi without typing the password (use the Wi-Fi preset).
- Putting "scan to pay / book / order" on signage in physical spaces.
- Encoding a vCard for instant contact-card import on the receiver's phone.
Common gotchas
- Error correction trades off with density. Higher levels (Q, H) survive scratches and overlaid logos; lower levels (L, M) keep the code small and faster to scan. Use H if you plan to overlay a logo, otherwise M is the sane default.
- Contrast matters. Stylised QR codes with low foreground/background contrast often look pretty but scan poorly under bad light. Test by scanning from the printed/screen output before shipping.
- Long content forces a denser code. If you must encode a 200-character URL, the resulting code is dense and harder to scan from far away. Shorten via a redirect first if size matters.
- SVG vs PNG. SVG scales without quality loss — best for print or large displays. PNG is universally accepted but pixelates if scaled up; export at the size you'll use.
- Wi-Fi preset format.
WIFI:T:WPA;S:<SSID>;P:<password>;;— modern iOS/Android scan and join automatically; very old phones may not support it.
Expert notes
- Static vs dynamic QR codes are two different products. A static QR encodes the destination URL directly in its pixels — once printed, it can never be changed. A "dynamic" QR encodes a short tracking URL that redirects to a target you can update later (and that logs every scan). For permanent signage where you don't need analytics, static is simpler and free; for marketing campaigns where the target may change or you want scan counts, dynamic is worth the subscription.
- Error-correction level is the trade-off knob. QR codes have four levels (L/M/Q/H) that allow 7%/15%/25%/30% of the code to be damaged or obscured while still scanning. Higher correction means more redundancy means a denser code for the same content. For codes that will be printed, weatherworn, partially covered by logos, or scanned in low light, level Q or H is worth the density. For pristine on-screen display, L is fine.
- QR codes can carry malware payloads. "Quishing" (QR phishing) — printed QR stickers placed over legitimate ones, often on parking meters or restaurant menus — has been a documented attack vector since 2022. The scanned URL goes to a credential-harvesting page that mimics the legitimate brand. Users should preview the URL before tapping (most phone scanners show it); businesses should physically protect their QRs from sticker-overlay attacks.
- The minimum size for reliable scanning is roughly 2 cm × 2 cm at 30 cm distance. For each doubling of distance, double the size. Posters meant to be scanned from across a room need codes 10 cm or larger. Smaller codes work in print magazines (held close) but fail on billboards. The math is "QR pixel size ≥ 0.5 mm × distance in metres".
- vCard QRs are awkward to debug. The format is rigid (BEGIN:VCARD / VERSION:3.0 / FN:... / TEL:... / EMAIL:... / END:VCARD), and Android and iOS parse the fields slightly differently. For business cards meant to add a contact in one scan, test on both platforms before printing a thousand. The most common failure: phone numbers without country code, which iOS handles but some Android versions reject.