QR Code Generator
Generate QR codes for any URL, text, or WiFi credentials. Download as PNG. Everything runs in your browser — your data never leaves this tab.
QR Code Generator
Runs entirely in your browser — no server calls, no tracking.
🔒 Your data never leaves this tab. This tool has no backend.
About the QR Code Generator
A QR code encodes text — most commonly a URL — as a matrix of black and white squares that any smartphone camera can scan. QR codes are used for product packaging, print advertising, event check-in, contactless payments, WiFi credential sharing, and document tracking. This tool generates QR codes entirely in your browser using the open-source qrcode.js library — the content you encode is never sent to any server.
Error correction levels
QR codes include redundant data to allow reading even when part of the code is damaged or obscured. Higher error correction means more data, which makes the code denser. L (7%) — minimum error correction, smallest code, best for clean digital displays. M (15%) — good for general use. Q (25%) — good for codes printed on materials that may get slightly damaged. H (30%) — use when you plan to overlay a logo in the centre of the QR code, as this area will be "damaged" intentionally.
Best practices for printed QR codes
Always test-scan a QR code before printing at scale. Use H error correction if you plan to overlay a logo. Leave quiet zone (white margin) around the code — at least 4 modules wide. Minimum print size: 2cm × 2cm for short URLs. Test at the maximum scanning distance you expect users to be at. Dark on light background always works better than light on dark.
What you can put in a QR code
A QR code is just a container for a short piece of text. What a phone does when it scans one depends entirely on how that text is formatted — there is no separate “WhatsApp QR” or “LinkedIn QR” format, only different payloads.
| You want | Encode this |
|---|---|
| Open a website | https://example.com |
| Open a WhatsApp chat | https://wa.me/447700900000 |
| Open a LinkedIn profile | Your full profile URL |
| Send an email | mailto:you@example.com |
| Join Wi-Fi | WIFI:S:NetworkName;T:WPA;P:password;; |
| Save a contact | A vCard block |
Error correction, and why it matters
QR codes carry redundant data so they still scan when partly obscured. Level L recovers about 7% damage, M 15%, Q 25% and H 30%. Higher correction means a denser code for the same content. Use H if you are placing a logo in the middle or printing on something that will get scuffed; M is a sensible default everywhere else.
Making one that actually scans
Keep the quiet zone — the blank margin of at least four modules around the code. Print no smaller than 2×2cm for close-range scanning, and larger for anything read from a distance. Keep contrast high and dark-on-light: inverted codes fail on many scanners. Shorter URLs make simpler, more reliable codes.
Static codes do not expire
The codes here are static: the destination is encoded in the pattern itself, so they work forever with no account, tracking or subscription — but the destination cannot be changed once printed. If you need to redirect later, encode a URL you control and change where that points.
Frequently asked questions
Encode the URL https://wa.me/ followed by your number in international format with no plus, spaces or leading zero — for example https://wa.me/447700900000. Scanning it opens a chat with you. There is no special WhatsApp QR format; it is an ordinary URL code.
Copy your full public profile URL and encode it as a URL QR code. That is all a LinkedIn QR code is. The same approach works for any social profile, and putting it on a business card or slide lets people reach you without typing anything.
Level M (15% recovery) is a good default. Choose H (30%) if you are placing a logo over the centre or printing on something that will be scuffed, folded or handled a lot. Higher correction packs more redundancy in, so the code becomes denser for the same content.
The usual causes are too little quiet zone (keep a blank margin of at least four modules), printing too small (2x2cm is a sensible minimum), low contrast or inverted colours, or too much data making the pattern too dense. Shorten the URL and raise the contrast first.
No. They are static codes: the destination is encoded directly in the pattern, so there is no redirect service, no account, no tracking and no expiry. The trade-off is that the destination cannot be changed after printing — encode a URL you control if you may need to redirect later.
WIFI:T:WPA;S:networkname;P:password;; — paste this into the content field. Replace WPA with WEP or nopass as appropriate, S with your network SSID, and P with the password. Most smartphones show a "Connect to WiFi" prompt when scanning this format.color.dark and color.light) but low-contrast colour combinations (light on light, dark on dark) fail to scan. Always maintain a contrast ratio of at least 3:1 between the dark modules and background.Need QR code integration built into your product?
ruxox builds web apps with custom QR generation, scanning, and tracking features. Free estimate in 48 hours.