QR Code Generator
Build a QR code for a link, a WiFi network, a contact card or anything else, then style it however you like and download it as a PNG or a sharp SVG. The codes never expire, because there is no redirect in the middle.
https:// is added if you leave it out, because a code without a scheme opens a search instead of the site.
SVG stays sharp at any size, so use it for print. PNG is the safer choice for anything that will be pasted into a document.
How to use it
- Pick what the code should contain. A website address is the common case, but WiFi details and contact cards save far more typing.
- Fill in the fields. The code redraws as you type.
- Style it under Appearance — colours, module and eye shapes, quiet zone, and a logo in the middle if you want one.
- Download. Take the SVG for anything going to print, and the PNG for anything going into a document or a slide.
- Scan it with your own phone before you use it anywhere. That takes five seconds and is the only test that counts.
These codes do not expire
Many QR generators give you a code that points at their own server, which then redirects to your link. That is how they offer editing and scan statistics, and it is also how a code on a printed menu stops working the day the company changes its pricing, goes under, or decides your free plan has ended.
The codes here are static: your link is written into the pattern itself. Nothing sits in the middle, nothing can be switched off, and nobody counts your scans. The trade-off is real and worth stating plainly — a static code cannot be edited after it is printed. If the destination might change, point the code at a short URL on a domain you control, and change where that points.
Error correction
A QR code stores every piece of data more than once, so it still reads when part of it is scratched, smudged or covered. The level sets how much redundancy goes in — and therefore how much room is left for your content.
| Level | Recovers | Use it for |
|---|---|---|
L | About 7% | Screens, and anywhere the code cannot get dirty or damaged. |
M | About 15% | The sensible default for print. Posters, flyers, business cards. |
Q | About 25% | Labels and packaging, or any code carrying a small logo. |
H | About 30% | Harsh conditions, curved surfaces, or a code with a large logo. |
Adding a logo removes modules, so this page raises the level automatically when you clear space in the middle — to Q for a small logo and H for a larger one. That is not a nicety. A logo over a level L code is a code that does not scan.
How much fits
| Content | At L | At Q | At H |
|---|---|---|---|
| Numbers only | 7,089 | 3,057 | 1,273 |
| Capital letters and digits | 4,296 | 1,852 | 772 |
| Any text (UTF-8 bytes) | 2,953 | 1,273 | 1,273 |
Those are the absolute maxima, at the largest symbol the standard allows. Long BEFORE you reach them the code becomes too dense to scan from a phone at arm's length. As a rule, keep a printed code under a few hundred characters.
Making a code that actually scans
Contrast, in the right direction
Dark modules on a light background. Scanners look for dark-on-light, and inverting it breaks a good number of them. Keep real contrast between the two colours — mid-grey on white fails in poor light even though it looks fine on your screen.
Leave the quiet zone alone
The blank margin around the code is part of the code. The standard asks for four modules, and it is how the scanner works out where the symbol ends. Cropping it off to make the code fit a layout is the most common reason a printed code fails.
Size it for the distance
The usual guide is that the code should be about a tenth of the distance it is scanned from. A code read at 30 cm wants to be around 3 cm across; one on a wall read from 3 m wants to be about 30 cm. Below roughly 2 cm most phone cameras struggle whatever the resolution.
Use the SVG for print
A PNG that looked crisp on screen turns into soft-edged mush at 300 dpi, and soft edges are what a scanner misreads. SVG has no resolution to run out of.
Questions
Do I need an account, and will the code stop working?
No account, and no. The data lives in the pattern, not on a server, so there is nothing to expire and nothing to pay for later.
Can I put my logo in the middle?
Yes. Choose an image and the space clears automatically, with the error correction raised to cover the removed modules. Keep it under about a fifth of the width, and scan the result before you use it. The finder eyes and the timing patterns are never cleared, because those are what a scanner uses to find and align the grid.
Why did my code get bigger when I added a logo?
Because stronger error correction means more redundancy, and more redundancy needs more modules. It is the same content in a denser symbol.
Are the WiFi codes safe to print?
The password is written into the pattern in plain form — a QR code is not encrypted and anyone who photographs it can read it. That is fine for a guest network on a café wall, and a bad idea for your main network.
Why does my WiFi code work on one phone but not another?
Almost always a special character in the network name or password. The format uses semicolons and colons as separators, so an unescaped one truncates the rest. This page escapes them, which is why a password like pa;ss works here.
Can I track how many people scan it?
Not with a static code, and that is deliberate. If you need counts, point the code at a URL you control and measure the visits at that end — which keeps the code working whatever happens to any third party.
What is the difference between the module shapes?
Appearance only, with one caveat: dots and rounded corners are slightly harder for a camera to read than plain squares, particularly on small or dense codes. The timing and alignment patterns stay square whatever you choose, which is what keeps a styled code readable.
Is my data uploaded?
No. The code is generated in your browser, including the logo you choose. Nothing is sent anywhere, which matters given how often these carry a WiFi password or someone's phone number.