Client-Side Only — Your data is processed entirely in the browser. No data is sent to any server.

QR Code Generator

0 / 3391

Enter content to generate a QR code

Instant Generation

QR codes are generated in real time as you type with zero delay.

100% Client-Side

All processing happens in your browser. Your data never leaves your device.

Full Customization

Customize colors, add logos, and adjust error correction and size.

About the QR Code Generator

The QR Code Generator encodes text, URLs, Wi-Fi credentials, vCards, and otpauth:// URIs into QR codes — entirely in your browser via qrcode.react. Adjust error correction level, size, and colors. Download as PNG or SVG. The encoder runs client-side so credentials, payment links, and 2FA secrets you paste into the input never leave your tab.

Updated: May 8, 2026

How to use the generator

  • Pick a content type: plain text, URL, Wi-Fi network (SSID + password + WPA mode), vCard contact, SMS / phone / email link, geo coordinates, or otpauth:// for 2FA enrollment QR codes.
  • Fill in the structured fields — the QR string is auto-built per the standard URI scheme for that type.
  • Adjust error correction level: L (7% recoverable damage), M (15%), Q (25%), H (30%). Higher levels mean larger codes; pick H for printed materials that may scuff or be photocopied.
  • Customize the rendered size (in pixels) and colors. Note: extreme contrast still matters — pure black on white scans most reliably.
  • Download PNG (raster) for slides and email; SVG (vector) for print, business cards, and high-DPI displays.

Common use cases

  • Conference badges and signage — print a vCard QR on a name tag so attendees can scan to add you to their contacts.
  • Wi-Fi guest network sharing — encode SSID + password into a Wi-Fi QR; guests scan with their phone camera and connect without typing.
  • OTP enrollment — generate the otpauth:// QR your authenticator app expects when setting up 2FA, useful for self-hosted services.
  • Payment / donation links — encode a Stripe checkout URL, Toss link, or PayPal.me URL for in-person collection.
  • Restaurant menu links, parking validation, ticket entry — any short URL that benefits from frictionless camera-scan delivery.

Privacy and security

qrcode.react and jsqr both run as client-side JavaScript. Your input — including Wi-Fi passwords, vCard contact details, otpauth secrets, and payment links — is never sent to any server. The page makes zero outbound requests after initial load. Disconnect from the network and the generator continues to encode and decode QR codes locally.

Tips and pitfalls

  • QR code "version" determines size. Versions 1-40 correspond to 21×21 to 177×177 modules. Higher versions hold more data but are harder to scan from a distance — short URLs scan more reliably than long ones.
  • Error correction lets a damaged QR still scan. H-level survives a 30% obstruction (logo overlay, smudges), but the code is larger. L-level packs more data into a smaller code but is fragile to print damage.
  • Logo overlays work best with H-level error correction and an opaque (not semi-transparent) overlay. Place at center; keep the overlay area below 25% of the code.
  • Pure white-on-black inverts can fail to scan on older readers. Most modern phone cameras handle inverts, but legacy POS scanners may not. When in doubt, use dark-on-light.
  • otpauth:// QR codes contain the SHARED SECRET in plaintext. Treat the rendered QR image with the same care as the secret itself; do not paste it into Slack, ticketing systems, or screenshots.

Frequently Asked Questions

What is the maximum data size for a QR code?
Up to about 4,296 alphanumeric characters or 7,089 numeric digits at the largest (version 40, error correction L). In practice, keep URLs short — long URLs scan slower and require more print resolution. For long content, store on a server and encode the short URL.
Why does my QR code not scan?
Common causes: insufficient quiet zone (white border around the code), too small or too detailed (try a higher error correction level and lower data density), low contrast (avoid color-on-color combinations that gray-scale to similar values), and camera focus issues (most phones need 5cm+ distance).
Can I add a logo or color my QR code?
Yes — set custom foreground and background colors, and overlay a logo at center. For logo overlays, use error correction H so the redundant data survives the obscured center. Keep overlay below 25% of the total code area.
PNG vs SVG — which should I choose?
SVG for print, business cards, and high-DPI displays — it scales without quality loss. PNG for slides, social media, and emails — supported everywhere and renders identically across systems. Both work for screen scans; SVG is mandatory if you want a sharp 1m printed code.
How do I encode Wi-Fi credentials?
Use the format `WIFI:T:WPA;S:NetworkName;P:Password;H:false;;` (T=auth type, S=SSID, P=password, H=hidden). Pick "Wi-Fi" content type and the generator builds this string for you. Both iOS and Android camera apps recognize it as a Wi-Fi join prompt.
Are QR codes encrypted?
No — QR codes encode plaintext. Anyone scanning the code reads the contained data. For confidential information (Wi-Fi passwords on a shared bulletin board, otpauth secrets), control physical access to the printed code as you would the underlying secret.
What is the otpauth URI format?
`otpauth://totp/Issuer:account?secret=BASE32&issuer=Issuer&algorithm=SHA1&digits=6&period=30`. Generate one for any TOTP-protected account; scan with Google Authenticator, Authy, 1Password, or this site's OTP Generator. The format is documented in the Google Authenticator key URI spec.
Where can I read the QR specification?
ISO/IEC 18004:2015 is the international standard. Wikipedia has a thorough overview of versions, encoding modes (numeric, alphanumeric, byte, kanji), and error correction. The qrcode.react library implements the full spec.