Skip to main content

Free QR Code Generator

Generate QR codes for URLs, text, WiFi, and more. No watermark.

Many QR sites send scans through their own redirect, which can expire — this code holds your link directly and never expires.

Static QR code — never expires

Controls download resolution

512px
128px1024px
#000000
#ffffff
Dot style
Logo in the centre

Type something to generate a QR code

Need a payment QR (UPI)? Try the UPI QR generator →
No watermark, ever.

Common uses

  • Generate WiFi QR CodeCreate a QR code for your WiFi network — guests scan to connect instantly without typing passwords.
  • Generate URL QR CodeTurn any web link into a QR code — perfect for menus, flyers, business cards, and marketing materials.
  • Generate Contact QR CodeCreate a vCard QR code with your contact details — scan to instantly add you as a phone contact.
  • Generate Email QR CodeCreate a QR code that opens an email draft — pre-fill the recipient, subject, and even the body text.
  • Generate Social Media QR CodeCreate QR codes linking to your social profiles — Instagram, LinkedIn, TikTok, YouTube, and more.

How It Works

QR codes are generated entirely in your browser using the qrcode JavaScript library — no server is involved, and nothing you type is ever transmitted anywhere. For structured data types (Wi-Fi, vCard contacts, calendar events), the tool assembles a correctly-escaped payload string following the relevant open standards (MECARD/WiFi spec, vCard 3.0, RFC 5545 iCalendar) before handing it to the library.

  1. 1
    Payload assembly per type
    Depending on the selected tab, the tool constructs the exact string that gets encoded — a bare URL gets 'https://' prepended if missing, a Wi-Fi entry becomes a WIFI:T:WPA;S:...;P:...; MECARD string with special characters escaped, a vCard becomes a BEGIN:VCARD/VERSION:3.0 block, and a calendar event becomes a VCALENDAR/VEVENT block with RFC 5545-compliant datetime formatting.
  2. 2
    qrcode library encodes the payload
    The assembled string is passed to QRCode.toDataURL() from the qrcode library, which computes the Reed-Solomon error-correction codes, maps data bits into the QR matrix modules, and renders the result directly to a PNG data URL at 256px for the live preview.
  3. 3
    Export blobs built ahead of download
    When you change options or input, the tool pre-builds both a PNG blob (via QRCode.toDataURL() at your chosen resolution, up to 1024px) and an SVG blob (via QRCode.toString() with type 'svg') in the background, so downloads fire synchronously inside the user gesture — required for iOS Safari compatibility.
  4. 4
    Contrast check and download
    Before rendering, the tool computes the WCAG relative luminance of your chosen dark and light colors and warns if the contrast ratio falls below 3:1 or if the colors are inverted — both conditions that cause scanners to fail. Download saves the pre-built PNG or SVG; copy places the PNG in the clipboard via the Clipboard API.

Related Tools

Frequently Asked Questions