QR Code Generator

Turn any text or URL into a QR code — drawn in your browser, with no tracking link in between.

Runs in your browser. Nothing is uploaded — your input is processed on this device and discarded when you close the tab.

Create your qr code generator

Only http, https, mailto, tel, sms and geo links are allowed. javascript: and data: links are blocked with a plain-language error.

A logo switches the code to level H, is capped at 20% of the code area, and carries a scan warning. Test the printed code before you publish it.

Static only: no tracking, no redirects, no expiry. The code encodes exactly what you typed.

Upload a code image to preview it here. This package does not bundle a decoder library, so the image is not decoded on this page — scan it with your phone camera and compare it with the payload shown above. This is a scan check, not a verification service.

Everything runs in your browser. Nothing you type or upload is sent to our server or logged.

How to use

  1. Pick a type. URL, Text, Email, Phone, SMS, WhatsApp, Wi-Fi, vCard or Geo. Each type shows only its own fields, and the payload it will encode is shown to you before you download anything.
  2. Check the payload. A QR code stores characters, not intentions. Read the payload back: a typo in a URL, a missing country code, or a Wi-Fi password with a special character that was not escaped will be stored faithfully and will fail in the real world.
  3. Choose correction and size. Start with M for screens, Q or H for print that will be handled, scratched or seen outdoors. Size is the PNG pixel size; the SVG is a vector and scales without softening.
  4. Scan-test the downloaded file. Print one copy at the real size, or show it on another device, and scan it in ordinary light before you publish it.

Worked example

Load sample fills the form with a fictional address, https://example.com/guide, at level M and 512 px. The counter reports 27 characters and 27 UTF-8 bytes, because the text is plain ASCII. At level M the capacity is 2,331 bytes, so 2,304 bytes remain spare, and the same text also fits at level H (1,273 bytes). For a short link there is therefore no capacity reason to accept a weaker level — the only trade-off left is how dense the printed grid looks.

Limitations

Capacity is a hard ceiling per level: 2,953 bytes at L, 2,331 at M, 1,663 at Q and 1,273 at H, counted as UTF-8 bytes. Longer content must be shortened or pointed at a short address you control. This tool cannot verify that a URL exists, is safe, or will still be there next year. A decode check proves an image decodes to the text you typed; it does not prove the destination is trustworthy. Dynamic codes, scan analytics, bulk generation and any verification service are not offered. A code printed too small, cropped into its quiet zone, inverted, or placed on glossy or curved stock may not scan even though it generated without errors.

How a reader finds and reads a code

A phone camera does not read a QR code as a picture of text. It first finds the three square finder patterns in the corners, uses them to work out the grid's size, rotation and perspective, and then reads each module as dark or light. The quiet zone around the grid is what lets the camera separate the code from everything else on the page, which is why a code placed hard against a border, a photograph or another graphic can fail even when the code itself is perfect. Lighting matters in the same way: glare on glossy stock, a shadow across one corner, or a code printed on a curved bottle can hide modules from the camera, and error correction can only repair so much damage. That is why the practical test is always the same — scan the actual printed or displayed code, at the actual distance, in the actual light, on the device your readers will use — rather than trusting a preview on a bright screen at arm's length.

Frequently asked questions

Which error-correction level should I choose?

M is the sensible default for screens and clean indoor print. Move to Q or H for packaging, posters and anything that will be scratched or faded. Use L only for long content that will be shown large and read at close range.

Why does the tool count bytes as well as characters?

Because QR capacity is counted in UTF-8 bytes. An accented letter costs two bytes, many Arabic, Urdu and Chinese characters cost two or three, and an emoji costs four. A long message can therefore reach a byte limit while its character count still looks modest.

Can I change where a printed code points later?

No. The destination text is baked into the module pattern. If the destination might move, point the code at a short address on your own site from the start, so you can redirect that address later.

What is the quiet zone and why is it enforced?

The quiet zone is the blank margin of at least four modules around the grid. Readers use it to find the code. Cropping it away is one of the most common reasons a technically valid code will not scan, so this tool never crops it in preview or in any export.

Does this tool track scans?

No. A static code reports nothing when it is scanned, and this tool adds no tracking link, redirect or expiry. If you need scan counts, point the code at an address on a site whose analytics you can read.

How it works

Open the QR Code Generator page and type or paste the text or URL you want the code to carry. The code is drawn entirely in your browser — nothing is uploaded, and no tracking link is placed between the code and its destination. You choose the size of the finished code and the error-correction level, which controls how much of the code can be damaged or covered while it still scans: a higher level makes a denser code, but one that survives a smudge, a fold, or a small logo area better. A preview updates as you type, so you can see the result before downloading. When you are happy with it, download the code as a PNG for print and everyday use, or as an SVG when you need a version that scales cleanly to any size.

Another worked example

Lena, a fictional owner of a small plant shop, wants customers at her market stall to reach her care guide at example.org/plant-care. She pastes that URL into the tool, picks a medium error-correction level so the code still scans if the printed card gets a little worn, and downloads a PNG. She prints the code on her stall cards at a comfortable size and tests it with her own phone before the market opens. Shoppers scan the card and land directly on the care guide — no sign-up, no redirect service, and no scan data collected along the way, because the code simply contains the URL itself.

More limitations to know

A QR code is a static picture of a piece of text: once printed, its destination cannot be changed, so a typo in the URL means reprinting, not editing. Generating a code does not by itself bring scans — people still need a reason to scan, good lighting, and a code printed large enough and with enough contrast to be read. Very long URLs produce dense codes that older phone cameras struggle with, so a short landing URL is usually the better pattern for print. The tool also records no scan counts or locations, so if you need to know how many people scanned a code, you will need your own analytics on the destination page.

More frequently asked questions

Should I use PNG or SVG?

Use PNG for most everyday jobs, such as a flyer or a card printed at a fixed size. Use SVG when the code will be resized, for example on a poster or a sign, because it stays sharp at any size.

How large should a printed code be?

Larger is safer, especially for codes scanned from a distance or on packaging. Test the actual printed size with a real phone before printing a full batch.

Can I put a logo in the middle of the code?

A small, centred mark can work if you choose a higher error-correction level, but it always costs some robustness. Test the finished code on several phones before relying on it.

Does the code expire?

No. A static code has no expiry date and no service behind it. It keeps pointing at the same text or URL for as long as that destination exists.

Related tools

Barcode Label Maker

Create Code 39 and EAN barcodes and print label sheets at exact millimetre sizes.

Design, Print & Branding

Email Signature Generator

Create a professional email signature in table HTML with a plain-text version, in your browser.

Design, Print & Branding

Related articles