Processed entirely on your device — nothing is uploaded
How to use the qr code generator & scanner
- 1Type the text or URL you want to encode.
- 2Adjust size and error correction if needed.
- 3Download the PNG, or switch to the Read tab to decode an existing code.
- 4To scan, drop in a photo or use your camera.
Static codes versus the tracking kind
There are two kinds of QR code service and the difference matters. A static code encodes your content directly in the pattern: scanning it produces exactly what you typed, forever, with no intermediary.
A dynamic code encodes a short redirect URL owned by the service. Scanning it goes to their server, which logs the scan and forwards the visitor to your destination. That buys you editability and analytics, and costs you a dependency: if the service shuts down, changes its pricing, or simply expires your free trial, every printed code you have distributed stops working.
This generator makes static codes only. There is no account, no dashboard and no analytics, and correspondingly nothing that can be turned off. If you have printed a code onto a thousand flyers, that is usually the property you want.
Choosing an error correction level
QR codes use Reed–Solomon error correction, which means a damaged or partly obscured code can still be read. Four levels are available, recovering roughly 7%, 15%, 25% and 30% of the data respectively.
Higher correction means more redundancy, which means a denser pattern for the same content — so the modules get smaller at a given physical size, which can make the code harder to scan rather than easier if it is printed small.
Level M at around 15% is the sensible default for most uses. Choose Q or H when the code will be printed on something that gets handled, when you intend to place a logo over the centre, or when it will be applied to a curved or textured surface. Level L is only worth it when the content is long and the code will be displayed cleanly on a screen.
Making a code that actually scans
Keep the content short. Every additional character increases the version number and therefore the module count, and a dense code needs to be printed larger to remain scannable. A URL of 30 characters produces a comfortably sparse pattern; one of 300 does not.
Respect the quiet zone — the empty margin around the code. It should be at least four modules wide, and cropping it off is the single most common reason a code fails to scan. The generated PNG includes it.
Maintain contrast and orientation. Dark on light is what scanners expect; inverted codes work on some readers and not others. And print at a sensible size: a rough guide is that scanning distance is about ten times the code's width, so a code scanned from two metres away needs to be around twenty centimetres across.
Test before printing, ideally with more than one phone. A code that scans on a recent iPhone at arm's length may fail on an older Android device in poor light.
Scanning safely
A QR code is a link you cannot read, which is exactly why they have become a popular phishing vector — sticker over a legitimate code on a parking meter, a payment code in an email, a fake code on a restaurant table.
Decoding a code here rather than pointing your phone at it lets you see the destination before deciding to visit it. If the decoded content is a URL, look at the domain carefully: attackers rely on lookalike domains and on the fact that nobody expects to inspect a QR code.
Be especially cautious with codes that lead to payment pages or login forms, with codes on stickers that may have been applied over something else, and with codes received by email or message from someone you do not know.
Frequently asked questions
Will this QR code expire?
No. It encodes your content directly rather than pointing at a redirect service, so there is nothing to expire or switch off.
Can I edit the destination later?
No — that requires a dynamic redirect code, which trades permanence for editability. Static codes are fixed once printed.
What error correction level should I use?
M for most purposes. Q or H if the code will be handled, printed on a curved surface, or have a logo placed over the centre.
How big should I print it?
Roughly one tenth of the intended scanning distance. A code read from two metres away wants to be about twenty centimetres wide.
Why will my code not scan?
Most often a missing quiet zone (the margin), too much content making the pattern dense, poor contrast, or printing too small.
Is my content or camera feed uploaded?
No. Generation and scanning both happen in your browser; the camera stream never leaves the page.