QR Code Generator

Generate a QR code as clean SVG or PNG, entirely in your browser

Runs entirely in your browser. Your data never leaves this device.

Input · text or URL
QR code

How to use it

  1. Type or paste the text or URL you want to encode.
  2. Pick an error correction level and adjust the module size if you need a larger image.
  3. Copy the SVG, or download a 1024-pixel PNG.

What the free generators do not tell you

Search for a QR generator and most results give you a code that does not contain your URL. It contains their short link, which redirects to your URL. That gives them analytics, and it gives you a dependency.

The consequence only shows up later. The service adds a scan limit, or moves the feature behind a subscription, or shuts down β€” and every business card, poster and product label you printed becomes a dead link. This has happened repeatedly, and it is not recoverable, because the printed code cannot be changed.

The code this page generates contains your text and nothing else. There is no service in the middle, no account, no expiry, and no way for anyone to track scans β€” including us.

Error correction is the interesting setting

QR codes use Reed–Solomon coding, which lets a scanner reconstruct data from a partially damaged symbol. Four levels are defined:

Level Recoverable Use it for
L ~7% Screens, clean digital use, maximum data in minimum size
M ~15% The sensible default for print
Q ~25% Small print, labels, anything handled often
H ~30% Harsh environments, curved surfaces, or a central logo

Higher correction is not free: the redundancy takes space, so the same text needs a larger symbol. At level H a given string may need two versions more than at level L, which means a physically bigger code or smaller modules.

The practical trade is about the module size at the end of it. A dense code printed small has modules below what a phone camera can resolve, and no amount of error correction fixes a code that cannot be focused. If the code will be printed at 2 cm across, keeping the data short matters more than raising the level.

Keep the payload short

Every character costs capacity, and capacity determines version, and version determines how many modules must fit in your physical space.

Two concrete savings. Use uppercase for the domain if you are encoding a URL β€” QR's alphanumeric mode is more compact than byte mode, though it only covers uppercase letters, digits and a few symbols. And drop https://www. where you can: most scanners assume https, and www. is almost always redundant.

For anything long β€” a vCard, a WiFi config with a long password, a JSON blob β€” expect a dense code and print it larger than feels necessary.

Why SVG is the right default

A QR code is a grid of squares. That is exactly what vector graphics are good at: the SVG this page produces is a single path element, usually a few kilobytes, and it renders perfectly at any size from a favicon to a billboard.

A PNG has to pick a resolution. Choose too low and printing produces soft, blurry module edges that scanners struggle with. This page rasterises at 1024 pixels with smoothing disabled, which is enough for most print jobs, but if you are sending artwork to a printer, send the SVG.

Frequently asked questions

Will this QR code ever stop working?

No. The code encodes your text directly, so there is no redirect service in the middle and nothing to expire. Many free generators produce a short link they control — if that service shuts down or starts charging, every printed code stops working.

Which error correction level should I choose?

M (15%) for anything on a screen or clean print. Q or H if the code will be printed small, on a curved surface, or somewhere it may get scuffed — higher correction survives damage but makes the code denser.

Why did the code get bigger when I added text?

QR versions are fixed sizes. Exceeding a version's capacity forces the next one up, which adds four modules per side. The status bar shows how much of the current capacity you are using.

SVG or PNG?

SVG for print and anything that scales — it stays sharp at any size and the file is tiny. PNG when a tool will not accept vector input. This page produces PNG at 1024 px, which is enough for most print use.

Can I put a logo in the middle?

Error correction makes it possible to cover a small central area, but this tool does not do it — covering too much makes the code unscannable, and how much is too much depends on the level. If you need a logo, use level H and test on several devices.

Is my content sent anywhere?

No. The encoder runs in JavaScript on this page. Nothing about what you encode leaves your device, which matters for WiFi passwords and private URLs.

Last updated: