Generate a QR code without uploading the target
A QR code for a private link, a ticket or a WiFi password is a QR code for something you did not want to publish. This generator encodes and draws the code in your browser, so the content never reaches a server.
- Encoding
- Local, canvas-rendered
- Presets
- URL, WiFi, vCard, email
- Output
- PNG at any size
Measured on Apple M4 Max: 1.45 ms build the module matrix (78-character URL, level M) See the benchmarks
How to use it
- Choose what the code should hold A plain URL, WiFi credentials, a vCard contact, an email with a subject, an SMS, or a calendar event. The right fields appear for each choice.
- Adjust the appearance Set the foreground and background colours, pick the size and the error correction level. Keep a strong contrast between the two, or scanners will struggle.
- Download it The code is exported as a PNG at the size you choose, or as an SVG for print. A preview of the scan result is shown next to the code so you can check it with a phone.
Reference
What each preset encodes
| Preset | Payload format |
|---|---|
| URL | `https://example.com/page?ref=qr` |
| WiFi | `WIFI:T:WPA;S:Network;P:Password;H:false;;` |
| vCard | `BEGIN:VCARD` … `END:VCARD` |
| `mailto:[email protected]?subject=Hello` | |
| SMS | `SMSTO:+34600000000:Body text` |
Questions people ask
Is the content of my QR code sent to a server?
No. The payload is encoded into the code locally and drawn on a canvas, then exported as an image from that canvas. Nothing is transmitted.
How big should the printed code be?
A common rule is that the printed code should be at least a tenth of the scanning distance, so a code read from two metres should be at least 20 centimetres across. Test with a phone before printing a batch.
Which error correction level should I pick?
Level M for a clean print on a screen. Level H if you overlay a logo or the code may be partially covered. Higher levels make the code denser, which is harder to scan when small.
Can I put a logo in the middle?
Yes, and you should raise the error correction level to H to compensate for the area the logo covers. Keep the logo under about a quarter of the code.
Do you add a tracking pixel?
No. A dynamic QR code with a tracking pixel has to be resolved through a server, which means a third party can see who scanned it. This one is a static code that goes exactly where you point it.
Can I make the code work for a WiFi network?
Yes. Choose the WiFi preset, enter the network name, the password and the security type. Most phones offer to join the network straight from the scan result.
Where this earns its keep
A WiFi code for a guest network
Guests scan instead of typing a password on a keyboard, which removes the most common reason people ask for the password twice.
A vCard for an event
One scan adds the contact details, which raises the rate at which people actually save them.
A trackable code for print
A UTM-tagged URL in a poster, so the physical distribution is attributed in the analytics report.
Details that catch people out
The H level tolerates about 30% damage and makes the code denser, which makes it harder to scan at a distance. Level M, the default here, is the sensible compromise unless you are overlaying a logo, which needs Q or H.
A high-resolution code with a pale foreground on a pale background will fail to scan. Dark on light is the rule, and light-on-dark works only when the scanner is comfortable inverting.
A QR code is a URL, and the URL might be private
The codes that matter most are the ones pointing at a private dashboard, a guest network, a ticket with a personal link or a document with an access token. Generating those on a server means the destination is in somebody else’s log.
- Encoding and drawing happen in the browser.
- Presets for URL, WiFi, vCard, email, SMS and event.
- Custom colours, size and error correction level.
- PNG download or an SVG for print, with no watermark.
Guides that go deeper
- WCAG Contrast Ratios for Developers 5 min read · What the contrast requirements actually are, which ones apply to your UI, and how to fix a…
- A Naming Convention for UTM Parameters 5 min read · How to pick UTM source, medium and campaign values that produce a readable report, and why…
Last reviewed 2026-10-11. Every tool on DevSnap runs entirely in your browser, so whatever you paste here never reaches a server.