QR code generator
Make QR codes for links, WiFi, contact cards and email — custom colors, PNG or SVG, in your browser.
Runs 100% in your browserHow to make a QR code
- Choose the content type. URL/text, WiFi, contact card or email.
- Fill in the details. The QR preview updates live as you type.
- Download. Save a PNG for print or an SVG for design.
How a QR code works
A QR ("Quick Response") code is a two-dimensional barcode that stores data in a grid of black and white modules. Unlike a traditional barcode, which holds a few dozen digits in one horizontal strip, a QR code packs data in both directions and can carry thousands of characters. The three large squares in the corners are finder patterns that let a camera locate and orient the code from any angle, even rotated or skewed; smaller alignment and timing patterns keep the grid readable when the surface is curved or the photo is imperfect. Because the content is encoded directly into the pattern, a static QR code needs no server and no network — once printed, it simply works.
What you can encode
The same square can mean very different things depending on how the text inside is formatted. A URL or plain text is the most common — scan it and the phone offers to open the link. WiFi credentials use a special format so a guest's phone offers to join the network by scanning, instead of typing a long password off a sticky note. A contact card (vCard) drops a name, phone and email straight into the address book. Email mode pre-fills a new message. This tool builds the correctly formatted payload for each type for you, so you only fill in the fields and the QR preview updates live.
Error correction and why codes fail to scan
QR codes use Reed–Solomon error correction, the same family of maths that protects CDs and deep-space transmissions, so a code keeps working even when part of it is damaged or hidden. You choose how much protection to trade for density: level L recovers about 7% of the code, up through M, Q and H at roughly 30%. That headroom is what lets designers drop a logo in the middle — set a higher level (Q or H) and the overlaid area falls within what the code can reconstruct. When a code won't scan, the cause is almost always physical: too little quiet zone (the blank margin), poor contrast, inverted colours, or simply too much data printed too small. Keep a clear margin, stay dark-on-light, and test at the real printed size.
Print, privacy, and related tools
Download a PNG for quick use or screens, and an SVG for anything that will be printed large — the SVG is vector, so it stays razor-sharp on a poster or banner where a small PNG would pixelate. Everything is rendered locally in your browser, which means your link, WiFi password or contact details never touch a server; it also means these are permanent static codes, not the tracked "dynamic" codes that quietly redirect through a third party and can be switched off. Need to read a code instead of make one? Use the QR code scanner; for retail and shipping formats like EAN, UPC or Code 128, the barcode generator covers the one-dimensional symbologies.
Frequently asked questions
- Yes. The QR code is rendered entirely in your browser — your link, WiFi password or contact details are never sent to a server. The image is created locally and downloaded directly.
- A plain URL or text, WiFi network credentials (so phones can join by scanning), or a contact card (vCard) that adds the person to the address book. Email mode is included too. The content is written into the code itself, so it works offline once scanned.
- Yes. Download a high-resolution PNG for print or a scalable SVG for design files. The SVG stays crisp at any size, which matters for large-format print like posters and banners where a low-res PNG would blur.
- Error correction adds redundancy (Reed–Solomon) so a code still scans when partly damaged, smudged or covered by a logo. There are four levels — L (~7% recoverable), M (~15%), Q (~25%) and H (~30%). Use L or M for clean screen/print, and Q or H if you are overlaying a logo or printing on something that may scuff.
- A static QR code like the ones here never expires — the data is encoded directly in the pattern, so it works as long as its destination (e.g. the URL) does. Codes that "expire" are dynamic codes from tracking services that redirect through their server; this tool makes permanent, server-free static codes.
- The usual causes are too little quiet zone (the blank margin around it), low contrast (light code on a busy or dark background), too much data crammed into a small print size, or inverted colours. Keep a clear margin, dark-on-light, and test at the actual printed size before committing.
- Up to about 4,296 alphanumeric or 2,953 binary characters at the largest version, but practical codes stay far smaller — the more you encode, the denser the modules and the harder it is to scan at small sizes. For long links, shorten the URL first.