Make a permanent, never-expires QR code — URL, Wi-Fi, contact & more. Static PNG + SVG you fully own, built in your browser.
If you leave out https:// we'll add it so phones open it as a link.
Blank margin around the code, in modules. ISO minimum is 4; we allow 4–16.
Higher = sharper print. 10 ≈ 300+ DPI at typical sizes.
Used for the print-size advisory (10:1 rule).
This free QR code generator builds a static QR code right in your browser and renders it live. Pick what the code should do — open a link, join a Wi-Fi network, save a contact, send an email or text, call a number, or open a map — fill in the fields, and download a permanent PNG or SVG you fully own. Because the data is encoded directly into the image (per ISO/IEC 18004), there's no server, no account, and nothing that can expire.
This tool makes static codes only: the destination is encoded permanently into the image and cannot be edited later. That is the feature — the code never breaks and needs no account — but it means changing a URL requires generating a new code. Static codes also cannot track scans or show analytics. If you genuinely need an editable destination or scan counts, a static code is the wrong tool and you should use a dynamic-code service instead. We'd rather tell you that than upsell you.
Make the code at least 1/10th of the farthest distance it'll be scanned from: 30 cm away → ~3 cm code; 3 m away → ~30 cm code. The absolute floor for any printed code is about 2 cm (20 mm) — below that, modules blur together and close scanning gets unreliable. The 10:1 rule is a field guideline, not part of ISO/IEC 18004: real minimum size also depends on camera quality, lighting, and contrast, so treat it as a floor, not a promise. For anything large, export the SVG so it scales with zero blur — never blow up a small PNG for a banner.
QR codes need a blank border — the quiet zone — so a scanner can find them. ISO/IEC 18004 sets the minimum at 4 modules on all sides, and this tool clamps the margin to 4 if you try to go lower. Cropping or styling away the quiet zone to make a code "fit" a design is the single most common cause of codes that won't scan.
Error correction adds redundancy so the code still scans when smudged, printed small, or partly covered: L ≈ 7%, M ≈ 15%, Q ≈ 25%, H ≈ 30% of codewords recoverable (fixed by the standard). Higher correction tolerates more damage but makes the code denser for the same data. If you place a logo over the center, bump to Q or H — but note even H can fail if the overlay covers more than ~25–30% of the area, and concentrated damage over the finder patterns (the three corner squares) kills any code regardless of level.
<iframe src="https://snaptoolsuite.com/qr-code-generator/?embed=1"
style="width:100%;max-width:560px;height:1100px;border:0;"
title="QR Code Generator" loading="lazy"></iframe>
<p>Free <a href="https://snaptoolsuite.com/qr-code-generator/">QR Code Generator</a> by Snap Tool Suite</p>
Full copy-paste steps are in the box below.
No. It's static — the data lives in the image itself, with no server or redirect. It works forever. The trade-off is you can't edit where it points; that needs a new code.
No. Everything is encoded in your browser. Nothing is uploaded, logged, or stored.
PNG for screens and quick print. SVG for large print (signage, billboards) — it's vector, so it stays sharp at any size.
A single QR code has a hard capacity limit (Version 40). If your text exceeds it, we refuse to encode rather than silently truncate it — a cut-off URL still "scans" but goes nowhere. Shorten the data or lower the error-correction level.
Built locally in your browser. No data — including Wi-Fi passwords and contacts — is ever sent, logged, or stored.