QR Code Generator

Links, wifi, contacts and more — encoded in your browser, never uploaded.

What should it contain?
https:// is added if you leave it off.
Stays in your browser. Semicolons and backslashes are escaped automatically.
Higher means a bigger code that still scans when damaged or partly covered.
Only affects the preview and PNG. The SVG is vector and scales to any size.
Questions

What people ask about QR codes

Is my data uploaded anywhere?

No. The encoder is part of this page and runs in your browser — there is no server and no library fetched from a CDN. You can verify it in your browser's network tab: this site makes no external requests at all. That matters most for wifi codes, which contain your network password in plain text.

Do these QR codes expire?

Never. The code is a direct encoding of your text, so it works forever with no account and no service behind it. "Dynamic" QR codes from other providers route through their servers, which is what lets them change the destination — and what makes them stop working if that company disappears.

Can I put a logo in the middle?

Yes, at High error correction. Keep the covered area under about 25% of the code, never obscure the three corner finder patterns, and test with a real phone before printing. The error correction genuinely reconstructs the covered modules, but only up to its limit.

SVG or PNG?

SVG for anything printed — it is vector and stays sharp from a business card to a billboard. PNG is fine for a screen or a slide. Printing from a low-resolution bitmap, where the module edges go soft, is the most common reason a code will not scan.

How much data fits in a QR code?

About 2,950 bytes at the largest version and lowest error correction — roughly 4,300 alphanumeric characters or 7,000 digits. In practice, keep it far shorter: a big code needs to be printed larger and scans less reliably. For long content, encode a link to it instead.

Why does my code look different each time I change a setting?

Because the mask changes. The standard defines eight mask patterns and the encoder tries all of them, scoring each with the penalty rules and keeping the best — the aim is to avoid large blocks of one colour and anything that resembles a finder pattern. Different data scores differently, so the winning mask changes.