QR Code Generator
Create custom QR codes for URLs, text, Wi-Fi, contacts and more — free, no signup.
About this tool
Generate scannable QR codes instantly in your browser. Customize colors, error-correction level, and size. Everything runs locally — your data never leaves your device.
How to use
- 1 Enter a URL, text, Wi-Fi password, or contact details in the input field.
- 2 Choose your preferred error-correction level (L for small codes, H for damaged-resistant).
- 3 Adjust colors and size using the customization options.
- 4 Click Generate, then right-click the QR code image to save or share.
How a QR code actually stores your data
A QR ("Quick Response") code is a two-dimensional grid of black and white modules that encodes text — most often a URL, but also plain text, Wi-Fi credentials, contact cards, or payment strings. Unlike a one-dimensional barcode, which only stores a handful of digits along a single axis, a QR code packs data both horizontally and vertically, so even a small symbol can hold hundreds of characters. The three large squares in the corners are finder patterns: they let a camera locate and orient the code no matter which way you hold your phone, which is why a QR code still scans upside down or at an angle.
Every QR code also carries built-in error correction using Reed–Solomon codes. This is the feature that lets a scanner read a code even when part of it is dirty, crumpled, or covered by a logo. You can choose one of four levels:
| Level | Recovers up to | Best for |
|---|---|---|
| L (Low) | ~7% damage | Clean digital screens, short URLs |
| M (Medium) | ~15% damage | General printing — a good default |
| Q (Quartile) | ~25% damage | Codes with a small center logo |
| H (High) | ~30% damage | Industrial labels, outdoor signage |
Higher correction is safer but makes the grid denser, because the redundant data takes up modules too. If you plan to drop a logo in the middle, use level Q or H so the obscured area stays within the recoverable margin.
A worked example
Suppose you paste https://boxtool.app/en/tools/qr-code-generator/ into the box above. The generator measures the string (47 characters), picks the smallest QR version (grid size) that can hold it at your chosen error-correction level, lays down the finder and timing patterns, encodes the URL as alphanumeric data, appends the Reed–Solomon recovery bytes, and applies a mask pattern that balances the ratio of black to white modules so cameras don't get confused. The result renders instantly as an SVG or PNG — entirely in your browser, so the URL you encode never touches our servers.
Practical tips that prevent unscannable codes
- Keep the quiet zone. A QR code needs a margin of empty space (about four modules wide) around it. Cropping right to the edge is the single most common reason a printed code fails to scan.
- Mind the contrast. Dark-on-light is the safe choice. Inverted (light-on-dark) codes work on many modern phones but fail on older scanners, so test before committing to a print run.
- Shorter URLs mean sparser grids. A long link forces a higher version with tiny modules that smartphone cameras struggle to resolve from a distance. If the destination URL is long, consider a short redirect.
- Size for distance. A rough rule is a 10:1 ratio — a code meant to be scanned from 1 metre away should be roughly 10 cm wide. Billboards need much larger codes than a business card.
- Always test the final medium. Scan the actual printout under realistic lighting, not just the screen preview. Ink bleed, glossy glare, and curved surfaces all reduce readability.
Common use cases
QR codes shine wherever you want to move someone from the physical world to a digital one without typing: restaurant menus, event check-ins, product packaging that links to instructions, Wi-Fi access for guests (encode WIFI:S:NetworkName;T:WPA;P:password;;), business cards that add a contact in one tap, and "pay by scan" systems. Because the data lives inside the code itself, a static QR code never expires and works offline — the scanner only needs the internet if the encoded link points somewhere online.
Static versus dynamic codes
The code this tool produces is static: the destination is baked into the pattern and cannot be changed after printing. That's ideal for permanent information and for privacy, since no third-party tracking service sits in the middle. Dynamic QR codes (offered by paid services) encode a short redirect URL so you can edit the destination or collect scan analytics later — useful for marketing, but it means a company logs every scan. For most personal and small-business needs, a static code is simpler, free, and more private.