Skip to content
ToolStash

QR Code Generator

Generate a QR code for a link, a block of text, a WiFi network or a contact card, then download it as a PNG or a scalable SVG. The data is encoded directly into the image, so the code has no expiry date and reports nothing to anyone.

Runs entirely in your browser — nothing is uploaded

https:// is added automatically if you leave it off.

Options — size, error correction, colours

For print, 1024 px or more keeps edges crisp. The SVG download is resolution-independent.

Higher levels still scan when the code is scuffed or partly covered, at the cost of a denser pattern.

The blank border scanners need to find the code. Below 2 some readers struggle.

Preview

Enter something above to see the code.

How to use it

  1. Pick what kind of code you want: Link, Text, WiFi or Contact.
  2. Fill in the fields. The preview updates as you type — there is no generate button.
  3. Open Options if you need a different size, error correction level, quiet zone or colours.
  4. Download as PNG for screens or SVG for print, or copy the image straight to your clipboard.

How it works

A QR code is not a link to your data — it is your data, written as a grid of black and white squares. The encoder takes your text, converts it to bits, adds Reed–Solomon error correction codes so the result survives damage, and lays the whole thing out in the grid pattern along with the three corner squares scanners use to orient themselves.

All of that happens in your browser. The pattern is drawn onto an HTML canvas, which is what you see in the preview, and the PNG download is that canvas encoded as an image by your own device. The SVG download takes a different path — it writes out the module grid as vector rectangles, which is why it scales to any size without losing sharpness.

Because the payload lives inside the image, there is no server involved at scan time either. A phone pointed at the code reads the value and acts on it directly.

What each mode encodes

  • Link encodes the URL as plain text, adding https:// if you leave the scheme off.
  • Text encodes exactly what you type, with no interpretation.
  • WiFi builds the WIFI:T:WPA;S:network;P:password;; string that iOS and Android both understand as a join-network instruction.
  • Contact builds a vCard 3.0 record, which phones offer to save straight into contacts.

Tips

  • Test before you print in bulk. Scan with an iPhone camera and an Android phone, at the actual printed size, in the lighting the code will live in.
  • For a printed code, download the SVG and let the print shop scale it. Never enlarge a small PNG.
  • Keep the pattern dark and the background light. Inverted codes look striking and fail on a large share of scanner apps.
  • Shorter content makes a sparser, more reliable code. If you are encoding a long URL with tracking parameters, strip the ones you do not need.

Frequently asked questions

Will these QR codes ever expire or stop working?
No. Your data is encoded into the pattern itself, so the code works forever with no service in the middle. This is the single biggest difference from most free QR generators: those give you a code pointing at their own short domain, which lets them count scans — and means every code they ever issued breaks if they shut the domain down or move it behind a paywall. There is nothing here to shut down.
Does anyone track scans of my code?
No, and it is not technically possible with the codes this tool makes. A scanner reads the encoded value straight off the pattern and goes directly to your link. There is no redirect hop, so there is nothing for anyone to log — including us. If you actually want scan analytics, you need a redirect service, which is a genuine trade-off rather than a free extra.
Is my data sent to a server to make the image?
No. The encoding runs in JavaScript in your browser tab, and the PNG is produced by your own graphics hardware through an HTML canvas. This matters most in WiFi mode, where the payload contains your network password — that password never leaves your device.
PNG or SVG — which should I download?
SVG for anything printed: business cards, posters, packaging, table tents. It is vector, so it stays perfectly sharp at any size and print shops prefer it. PNG for screens and for anywhere that will not accept an SVG — set the size slider to 1024 px or more if the code will be printed from a PNG, because a small PNG blown up will have soft, fuzzy edges that scanners struggle with.
How much data fits in one QR code?
Between 1,273 and 2,953 bytes of text depending on the error correction level you pick — the counter under the preview shows exactly where you are. In practice URLs and WiFi credentials use a tiny fraction of that. Long text works but produces a dense pattern that needs to be printed larger to scan reliably, so for long content it is better to encode a short link to it.
What is error correction and which level should I use?
QR codes store redundant data so they still read when damaged. Level L recovers from about 7 per cent damage and gives the sparsest, easiest-to-scan pattern; level H recovers from about 30 per cent but packs the modules much tighter. Use M for screens and normal use. Use Q or H for anything that will be printed on a surface likely to get scuffed, curved, or partly obscured — a sticker on a box, a sign outdoors, or a code with a logo placed over the centre.
Why does my code fail to scan?
Four causes cover almost all cases. Too small — a printed code should be at least 2 cm across, and larger if it holds a lot of data. Not enough quiet zone — the blank border needs to be at least 2 modules wide, which is why the tool warns below that. Poor colour contrast — scanners need a clear dark-on-light difference, and a light pattern on a dark background is rejected outright by many apps. Or the code was scaled up from a low-resolution PNG, blurring the module edges.
Do WiFi QR codes work on both iPhone and Android?
Yes. iOS has read the WIFI: format from the built-in Camera app since iOS 11, and Android since version 10. Older Android devices may need a dedicated scanner app. Set Security to match your router — WPA covers WPA, WPA2 and WPA3 — and tick "hidden" only if your network does not broadcast its name, because getting that flag wrong will stop the code from connecting.
Can I put my logo in the middle of the code?
Not in this tool, but you can do it yourself: download the SVG, place your logo over the centre in any design app, and keep it under roughly 25 per cent of the code’s width. Set error correction to H first so the covered modules can be reconstructed. Always test the finished code with two or three different phones before printing a batch.

Browse every tool in Security & Encoding.

Found a bug or want a feature? Tell us — ToolStash is built from user requests.