Paste a link, or pick another type below
Pick a colour
More options logo, background, shape, size
How this QR code generator works
A short guide to what you are actually making, so the code you print scans on the first try.
A QR code — short for Quick Response code — is a two-dimensional barcode invented in 1994 by Denso Wave, a Japanese automotive supplier that needed to track parts faster than a striped barcode allowed. Instead of storing data along one axis, a QR code stores it in a grid of black and white squares called modules. Because a camera can read that grid from any angle, scanning takes a fraction of a second and works even when the code is rotated or slightly damaged.
Every code you build here is generated locally, in your own browser, by JavaScript. Your text is encoded into a matrix, error-correction data is appended, and the result is painted onto a canvas. Nothing is uploaded, nothing is logged, and no account is needed. That also means the code is static: it has no tracking redirect behind it, so it never expires and cannot stop working because a service shut down.
The seven data types, and when to use each
A QR code always holds plain text. What makes a scan open a map, join a network, or save a contact is the prefix that text carries. The tool writes those prefixes for you.
| Type | What the phone does on scan | Typical use |
|---|---|---|
| Link | Opens the page in the browser | Posters, menus, packaging, business cards |
| Text | Shows the text and offers to copy it | Serial numbers, instructions, asset tags |
| Wi-Fi | Offers to join the network directly | Cafés, guest rooms, offices, events |
| vCard | Opens a pre-filled "add contact" screen | Business cards, email signatures, badges |
| Opens the mail app with subject and body filled | Feedback forms, support requests | |
| Phone | Opens the dialler with the number ready | Shop windows, delivery vehicles, flyers |
| SMS | Opens messaging with recipient and text filled | Competition entries, table bookings |
Error correction: the setting people get wrong
QR codes use Reed–Solomon error correction, which means a portion of every code is redundant data. If part of the code is smudged, scratched, or covered by a logo, the scanner rebuilds the missing information from that redundancy. Four levels exist, and the trade-off is always the same: more protection means more modules, which means a denser code that needs to be printed larger.
| Level | Recoverable | Pick it when |
|---|---|---|
| L — Low | ≈ 7% | Clean screen display, long URLs, nothing covering the code |
| M — Medium | ≈ 15% | The sensible default for most printing |
| Q — Quartile | ≈ 25% | Labels that get handled, curved bottles, outdoor signage |
| H — High | ≈ 30% | Any code with a logo in the middle, or industrial surfaces |
Rule of thumb for logos: switch error correction to H and keep the logo at or below 22% of the code width. The tool raises the level for you automatically the moment you upload an image, but it is worth a test scan with two different phones before you send anything to print.
Choosing a size that actually scans
The usual guideline is that a QR code should be at least one tenth of the distance from which it will be scanned. A code read from 30 cm away — a business card or a menu — needs to be about 3 cm across. A code on a shop window read from 3 metres needs to be roughly 30 cm. Poster and billboard codes fail far more often from being too small than from any design problem.
For the file itself: choose Medium for screens, and Large for print. Better still, download the SVG. SVG is a vector format, so the code stays perfectly crisp whether it is printed on a sticker or a hoarding, and most print shops prefer it.
PNG or SVG?
- PNG — the everyday choice. Sharp edges, works everywhere.
- PNG — the safe everyday choice. Sharp edges, supports transparency, works everywhere.
- SVG — vector. Infinitely scalable, tiny file size, ideal for professional printing.
Design choices that break scanning
- Inverting the colours. Most scanners expect a dark code on a light background. A light code on dark still works on many modern phones, but it costs you readers.
- Not enough contrast. Grey on beige looks elegant and scans terribly. Aim for a strong difference in brightness, not just in hue.
- Removing the quiet zone. The blank margin is part of the specification. Keep it at four modules for anything printed.
- Stretching the image. A QR code must stay square. Lock the aspect ratio in whatever layout program you paste it into.
- Printing on a tight curve. Bottles and cans distort the grid. Raise error correction and enlarge the code.
Where a static code beats a tracked one
Paid QR services usually hand you a dynamic code: the image points at their server, which then redirects to your real link. That buys you scan analytics and the ability to change the destination later. It also means your printed code stops working the day that company disappears or your subscription lapses, and every scan is logged by a third party.
A static code, which is what this tool makes, encodes your destination directly. No middleman, no expiry, no analytics. If you want tracking without giving up control, point the static code at a URL on your own domain and add UTM parameters — you get the data in your own analytics and keep the code permanent.
Frequently asked questions
Do these QR codes ever expire?
No. The code is a plain image built from your text, with no redirect service behind it. It works for as long as the destination does. If you encode a link and later take that page down, the code will still scan — it will just land on a missing page.
Is there a limit on how many I can make?
None. There is no account, no daily cap and no watermark. If you need dozens at once, the bulk generator will produce up to 300 in a single ZIP file.
Can I use these codes commercially?
Yes. QR code technology is patent-free and open for anyone to use. Codes you generate here are yours to put on products, packaging, advertising or anything else, at no cost and with no attribution required.
Why did my code stop scanning after I styled it?
Usually one of two things: the contrast between code and background became too low, or the logo is covering too much of the code. Set the module shape back to Square and colours back to black on white — if it scans then, reintroduce your changes one at a time to find the culprit.
What is the maximum amount of data a QR code can hold?
At the largest version and the lowest error correction, roughly 4,296 alphanumeric characters or 7,089 digits. In practice that produces an enormous, extremely dense grid that phones struggle with. Keep to a couple of hundred characters where you can — for long links, a short URL is almost always the better answer.
Does anyone see what I type into this tool?
No. Generation runs entirely in your browser. There is no server call, so your links, Wi-Fi passwords and contact details never leave the device you are using.
Can I read an existing QR code here too?
Yes — the QR code scanner decodes a code from an uploaded image, a pasted screenshot or your camera, and tells you exactly what it contains before you visit anything.