QR Code Generator

Create custom QR codes for URLs, WiFi, text and more. Adjust size, colours and error correction. Generated entirely in your browser.

Size: 300px
Error correction
Colours

How QR codes work

A QR code is a grid of black and white modules. The data is encoded in binary, split into blocks, padded, protected with Reed-Solomon error correction, and finally placed into a matrix that includes finder patterns, timing patterns and alignment patterns.

Error correction levels

This is the most important setting to get right. It controls how much of the code can be damaged and still scan:

LevelRecoveryUse when
L~7%Clean screen, short-lived use
M~15%General purpose — the safe default
Q~25%Printed on packaging or labels
H~30%Stencilled, curved, or partly covered surfaces

Higher levels make the code denser, which means it needs a larger physical size to scan reliably. A business card QR code at level H can become unscannable — that is the usual cause of "my QR code does not work".

Design rules that matter

  • Keep the contrast high — dark code on a light background. Inverted codes fail on most scanners.
  • Leave a quiet zone — 4 modules of clear space on every side.
  • Do not round the corners of the modules — that reduces contrast.
  • Test with a real phone at the size you intend to print.
  • Keep the background plain — gradients and busy images reduce scan rates.

Capacity

A single QR code holds up to about 2,953 bytes at the lowest error correction level, and 1,856 bytes at level M. Beyond that you need a different format such as PDF417 or a dynamic URL that redirects to a short link.

Privacy note

This generator is entirely client-side. The content of your QR code is never sent to any server, which matters when you are encoding internal URLs, WiFi passwords or contact details.

Frequently asked questions

Is my data uploaded anywhere?

No. The QR code is encoded entirely in your browser, so even sensitive content like a WiFi password never leaves your device.

Which error correction level should I choose?

M is a good default. Use Q or H for printed codes that may get damaged, and L only when you need the smallest possible code.

Why does my QR code not scan?

The usual causes are low contrast between the foreground and background, a missing quiet zone, a code that is physically too small, or rounding the module corners.

How much data can a QR code hold?

About 2,953 bytes at error correction level L, and 1,856 bytes at level M. Beyond that you need a different format such as PDF417.

What format do I get?

An SVG, which scales to any size without blurring. You can also download it as a PNG for immediate use.