Preview
Fill in the fields to generate your code.
Test-scan with your own phone before printing.
Links, contacts, WiFi, locations and more — styled your way and downloaded as PNG or SVG. Generated entirely in your browser.
Fill in the fields to generate your code.
Test-scan with your own phone before printing.
QR encoding follows the ISO/IEC 18004 standard: your content is converted into a data stream, padded and protected with Reed-Solomon error correction, then arranged into a module grid with finder patterns (the three "eyes") in the corners. Contacts, WiFi networks, email and SMS use the formats phone cameras recognise natively — vCard 3.0, the WIFI: scheme, mailto: and SMSTO:.
Custom shapes are drawn from that same grid, so the encoded data never changes — only how each module and eye is painted. Everything runs client-side; nothing you type is sent anywhere.
Not at normal sizes. Every shape and eye combination in this generator was decoded with zxing-cpp, the engine behind many Android scanners, and all of them read correctly at 400px. Scanners find the three corner eyes first and then sample the centre of each module, so rounding or shrinking modules is tolerated. At very small print sizes, styled codes lose headroom faster than plain squares — use error correction Q and keep strong contrast when printing small.
Error correction determines how much of the QR code can be damaged, dirty, or obscured (like by a logo overlay) and still scan correctly. L recovers about 7% data loss, M about 15%, Q about 25%, and H about 30%. Higher levels add more redundant data, which makes the code visually denser for the same content — M is a reasonable default for most uses; use Q or H if the code will be printed small, styled, or partially covered.
The contact details are encoded directly in the code as a vCard 3.0 record. Scanning it on iPhone or Android offers to save the contact, with no app and no link to a server. Because everything is stored in the pattern itself, longer cards make denser codes — fill in only the fields you need, and print vCard codes a little larger than URL codes.
The standard geo: format opens reliably in Android map apps but is handled inconsistently by the iPhone camera. A Google Maps link opens on every phone, in the Maps app or the browser. Switch to geo: if your audience is Android-only or you want the phone to choose its own map app.
Yes — QR codes have 40 'versions' (sizes), and the maximum capacity depends on the error correction level and content type. At the highest version with low error correction, a QR code can hold roughly 4,296 alphanumeric characters or 2,953 bytes of binary data; at high error correction, considerably less. This generator automatically picks the smallest version that fits your content.
Common causes: too little quiet-zone margin around the code (make sure there's white space border when placing it in a design), insufficient contrast between foreground and background colors, the code printed too small relative to how far away it'll be scanned from, or a phone camera app that doesn't have QR scanning enabled. As a rule of thumb, print at least a 1-inch (2.5cm) square code for close-range phone scanning.
Yes — choose the WiFi type, and scanning the code will prompt most phones to join the network automatically, no typing required. Special characters in the network name or password are escaped for you. Be aware the password is stored in the QR code exactly as entered and readable by anyone who scans it, so this is best for home use or controlled environments, not public display.
No — a QR code generated here encodes your content directly and permanently; there's no server, account, or expiration involved, unlike some 'QR code' services that actually create a short redirect link they control. If you ever need to change where a code points, you'd need to generate and reprint a new code, since the destination is baked into the pattern itself.
Install Calculatory
Add to your home screen for offline access and faster opening.