Free · No sign-up · Never expires

QR Code Generator with logo & designs

Create custom QR codes for links, Wi-Fi, email, phone and SMS — with rounded dots, gradients, colors and a logo. Download as PNG or SVG. Everything is generated privately in your browser.

Design
#0F1222
#FFFFFF

🔒 QR codes are generated entirely on your device — your links and Wi-Fi passwords never leave your browser.

What you can make

🎨

Branded QR codes

Match your brand with custom colors, gradients, dot designs and a center logo.

📶

Wi-Fi access QR

Let guests join your network instantly — great for cafés, offices and rentals.

🖨️

Print-ready SVG

Download crisp SVG for posters, packaging and signage at any size.

What actually goes into the code

A QR code is not a link to a database — it is the data itself, written as a grid of black and white modules. That is why these codes never expire and need no account, and equally why nothing about them can be changed once they are printed. Each tab here simply assembles a differently formatted string before encoding it. A Wi-Fi code becomes WIFI:T:WPA;S:NetworkName;P:password;H:false;;. A contact becomes a vCard 3.0 block with name, organisation, telephone and email fields. Email builds a mailto: URL with the subject and body percent-encoded. Phone and SMS build tel: and SMSTO:. Your phone's camera reads the string and recognises the prefix; the QR code itself has no idea what a Wi-Fi network is.

The rendering happens in the page with a styling library that draws the modules as shapes rather than plain squares, which is what makes the rounded, dotted and classy presets possible. Nothing is sent anywhere — worth knowing given that the Wi-Fi and contact tabs handle real credentials and personal details.

One feature here is unusual and worth using deliberately: after each render, the generated image is fed back through a QR decoder and the result compared against what you asked to encode. The badge tells you whether the code actually scans and whether it decodes to exactly the right string. Heavy styling, a large logo, a tight margin or low error correction can each produce something that looks like a valid QR code and is not, and this catches that before you commit it to print.

Error correction and capacity

QR codes carry redundant data so a damaged or partially covered code still reads. The level you pick sets how much of the code can be lost, and it is also what makes a centre logo possible at all — the logo is damage, and error correction is what absorbs it.

LevelRecoverableMax bytes (largest code)Use for
L — Low~7%2,953Long payloads on clean digital screens. Rarely the right choice in print.
M — Medium~15%2,331The default, and correct for most printed codes without a logo.
Q — Quartile~25%1,663Codes on surfaces that get handled, scuffed or curved.
H — High~30%1,273Anything with a logo, or codes on packaging and outdoor signage.

Notice what higher correction costs: capacity. The same physical square has to hold both your data and the redundancy, so raising the level either shrinks how much you can encode or forces a denser grid. This is the single strongest argument for keeping payloads short — a 30-character URL at level H produces a coarse, forgiving code that scans from across a room, while a 300-character one produces a fine mesh that needs a steady hand and good light.

Where QR codes fail

Static means permanent. If the URL you encode changes, every printed copy is dead. The fix is not a different generator — it is to encode a URL you control and can redirect later, so that the code points at your own short link rather than directly at the destination. Decide that before printing, not after.

The quiet zone is not decoration. The specification requires a clear margin of four modules around the code. Dropping the margin slider to zero to fit a tighter layout is one of the most common reasons a code that looks perfect will not scan, because the decoder cannot find the code's boundary against the surrounding artwork.

Contrast and polarity matter. Dark modules on a light background is what scanners expect. Inverting that — light modules on a dark background — fails on a meaningful share of readers even though it looks striking, and a low-contrast pairing such as mid-grey on white fails in poor lighting even when it decodes on your desk. Keep the foreground genuinely dark and the background genuinely light.

A Wi-Fi QR code is not security. The password sits in the code as plain text. Anyone who photographs the card on the counter has your network credentials permanently, whether or not they were ever a guest. For a café or an office that is a reasonable trade; for a home network, consider a guest network instead of sharing the main one.

Some formats are less universal than they look. URLs, plain text and Wi-Fi are handled consistently almost everywhere. SMS and vCard handling varies between phones, and a long vCard produces a dense code that scans poorly. And the verification badge here checks the on-screen image at full size — it confirms the code is structurally valid, not that a two-centimetre print of it will scan from a metre away.

Getting a code that works in the real world

Size it by scan distance. The common working rule is that a code should be at least a tenth as wide as the distance it will be scanned from — about 10 cm across for a poster read from a metre away, and no smaller than roughly 2 cm for anything handheld. Print smaller than that and you are relying on the reader's camera being better than average.

Download SVG for anything that will be printed. It is vector, so a print shop can scale it to a billboard without a soft edge, and the module boundaries stay mathematically crisp instead of being resampled. PNG is right for screens, slide decks and social posts, and the size slider controls its pixel dimensions. The copy button puts a PNG straight on the clipboard where the browser supports it.

If you are adding a logo, set error correction to High first, then keep the logo under about a third of the width and check the verification badge — the tool keeps the area behind the logo clear of modules, but there is still a point past which too much data is missing. Then test on a real phone, ideally two different ones, before any print run. Codes that fail in the field usually failed for a mundane reason: too small, too little margin, printed on a curved or reflective surface, or placed somewhere with no phone signal to load the link.

The batch tab takes one payload per line, up to 500, and returns a ZIP of individually named PNGs using the current design settings — the practical way to produce table numbers, asset tags or per-item product links. To check a code you have found rather than one you have made, the QR scanner reads it with your camera and shows the raw contents before you visit anything, and the barcode generator handles the linear formats that retail and logistics still use.

QR code FAQ

Can I design the QR code with rounded dots and a logo?

Yes — pick a design style (classic, rounded, dots, classy, smooth), choose colors or a gradient, and add a center logo. Set error correction to High when using a logo so the code stays reliably scannable, and watch the verification badge under the preview, which decodes the generated image and confirms it still reads correctly.

Do the QR codes expire?

Never. These are static QR codes: the data is encoded directly into the pattern, so they keep working forever with no account. The other side of that is permanence — the destination cannot be changed once printed, so if a link might move later, encode a short URL you control and redirect it at your end.

PNG or SVG — which should I use?

PNG is best for quick sharing and social posts. SVG is perfect for print, packaging and large signage because it scales without blurring.

Is my data private?

Completely. The QR code is built in your browser — your links, Wi-Fi passwords and messages are never uploaded to a server. Do remember that a Wi-Fi code stores the password as plain text inside the image, so anyone who photographs the printed card can read it.

How small can I print it?

As a working rule, keep the code at least a tenth as wide as the distance it will be scanned from — roughly 10 cm for a poster read from a metre away — and no smaller than about 2 cm for anything held in the hand. Shorter payloads produce coarser, more forgiving patterns, so trimming the URL does more for reliability than enlarging the print.

My code looks fine but won't scan. What's wrong?

Most often the margin. The specification requires a clear quiet zone of four modules around the code, and setting the margin to zero to fit a layout stops the reader finding the code's edges. After that, check polarity and contrast — dark modules on a light background, not inverted — then the logo size and the error correction level. The verification badge under the preview will usually have flagged the problem already.