Skip to main content
SnipKit

QR Code Generator

Generate QR codes for URLs, WiFi, vCards, email, SMS, geo, and calendar events — fully client-side, no tracking.

Processed locally in your browser
100% client-side. Your QR content never leaves your browser — no uploads, no tracking pixels, no third-party CDN calls.

Content

Include the full scheme (https://). Short URLs scan faster.

Appearance

Unlock the full toolkit

Batch processing, no ads, higher limits, and API access.

Go Premium

How to Use

1. Pick a content type from the tabs — URL is the default, but switch to WiFi, vCard, Email, SMS, Geo, or Event as needed. 2. Fill in the fields — they validate as you type, with format-specific hints (full https URL, valid email, lat/lng range, etc.). 3. Tune the appearance: size for print or screen, error correction (use H if you plan to overlay a logo or expect wear), and colors (the tool warns when contrast falls below WCAG 4.5:1). 4. Hit one of Download PNG / SVG / JPG. SVG is best for print and infinite scaling; PNG is best for the web. To compress the resulting PNG before sharing, see Image Compressor.

Features

  • 8 content presets — URL, plain text, WiFi credentials, vCard contact, email, SMS, geo coordinates, calendar event (vEvent)
  • Custom colors with WCAG contrast warning (low-contrast QRs may not scan reliably)
  • Adjustable size (128–2048 px), margin (0–10 modules), and error correction (L/M/Q/H)
  • Live preview with 200 ms debounce — render updates as you type
  • Download as PNG, SVG, or JPG with sensible filenames
  • Proper WIFI:, MECARD/vCard, mailto:, SMSTO:, geo: and vEvent encoding for native scanner support
  • Fully client-side — your QR content never leaves the browser, no tracking pixels, no server calls

Frequently Asked Questions

What is the difference between L, M, Q, and H error correction?
Error correction adds redundant data so the QR can still be read after damage. L recovers up to ~7% of damaged modules and gives the densest (smallest) code. M recovers ~15%, Q ~25%, and H up to ~30% but produces a larger code at the same input length. Use M for digital screens, Q for printed materials that may get worn, and H whenever you plan to overlay a logo in the center — the redundancy is what makes that overlay safe to place.
Can I edit a QR code that has already been printed?
No — the URL or content is permanently encoded into the printed pattern. To get an "editable" QR, you need a dynamic QR service: it encodes a short redirect URL that points to your destination, and you change the destination later in their dashboard. Dynamic QRs always introduce a third party between scanner and target, which is exactly what this tool deliberately avoids. If you need that, this is on the premium roadmap; in the meantime, point the static QR at a short URL on your own domain that you control via 301 redirects.
Are my QR contents uploaded to your server?
No. The QR matrix is generated entirely in your browser by the open-source qrcode library — your URL, WiFi password, contact details, calendar event, etc. never touch any server, never get logged, and nothing is transmitted over the network during generation. You can verify this by opening DevTools → Network while you type: there is zero outbound traffic. Safe to use with private WiFi credentials, draft URLs, and personal vCard data.
Why does my QR code not scan?
Three common reasons. (1) Contrast — pale colors (light gray on white, light yellow on white) confuse most camera apps; we warn when contrast drops below WCAG 4.5:1, but stay above 4.5 to be safe. (2) Size — a printed QR generally needs at least 2 cm × 2 cm at the encoded data length we typically generate; downscale carefully. (3) Quiet zone — set Margin to at least 2 modules; cropping the white border breaks decoders. (4) Damage — if the print is creased or stained, regenerate with error correction H so the redundant data covers the damaged area.
How does the WiFi format work?
iOS and Android scanners read the WIFI: schema we generate: `WIFI:T:WPA;S:NetworkName;P:Password;H:false;;`. T is the security type (WPA, WEP, or nopass), S is the SSID (with `;`, `,`, `\`, `:`, `"` characters auto-escaped), P is the password, and H marks whether the network is hidden. Once scanned, the phone offers a one-tap "Join Network" prompt — no typing required. Print this and stick it on the wall in your office or guest room.
Should I download PNG, SVG, or JPG?
SVG is almost always the right answer for print — it is a vector format, so it stays crisp at any scale and the file is tiny (a few KB regardless of size). PNG is the right choice for digital displays and embedding in apps where SVG support is unreliable. JPG is mostly here for legacy systems that reject PNG; avoid JPG when you can — its lossy compression introduces artefacts around the sharp QR edges and can hurt scan reliability at small sizes.
How long can the encoded content be?
The QR spec maxes out at version 40, which holds about 2,953 bytes at correction level L, 2,331 at M, 1,663 at Q, and 1,273 at H — but in practice you should aim for far less. Codes near the limit produce dense, hard-to-scan patterns even at large print sizes. For URLs, use a short link or your own redirect; for vCards, omit fields you do not need; for plain text, consider linking to a hosted version instead. The tool surfaces an error if your content would not fit at the chosen correction level.