A café menu, a wireless login taped inside a cupboard door, a contact you want someone to save without thumbing it in by hand — all three collapse into the same black-and-white grid here. Point the tool at a URL, a block of text, a Wi-Fi network or a contact card, and it draws the matching QR code on your device, ready to export as PNG or SVG.
How to use
- Pick a content type: Text or URL, Wi-Fi network, or Contact card (vCard). The input fields swap to match — a single box for text, named fields for the other two.
- Fill in the content. The code redraws as you type, so there is no generate button to press.
- Set the PNG size slider (128 to 1,024 px) and the quiet-zone margin, then choose an error correction level from L to H.
- Optionally change the code colour and background colour. A warning appears if the pair is inverted or falls below roughly 3:1 contrast.
- Download the PNG for screens and documents, or the SVG for print. The exact string being encoded is shown in the payload box below the preview.
How it works
Whichever content type you pick, the tool first assembles one plain string. Text passes through untouched; a Wi-Fi network becomes a WIFI: string; a contact becomes a vCard 3.0 record. Fields that could break the format are backslash-escaped first — for vCards, a literal backslash, newline, semicolon or comma inside any value is escaped so it stays data rather than structure.
That string is measured in UTF-8 bytes with TextEncoder and checked against the capacity of the largest QR symbol for your chosen level — 2,953 bytes at L down to 1,273 at H. If it fits, the bundled qrcode library encodes it: the bytes are wrapped with Reed–Solomon error-correction codewords, laid out as a square matrix of dark and light modules, and painted onto a <canvas> in your two chosen colours.
Take a contact card with first name Priya, last name Nkemelu, phone +61 401 222 333, email [email protected], organisation Ferngully Studio. The tool builds this exact payload, lines joined by CRLF:
BEGIN:VCARD
VERSION:3.0
N:Nkemelu;Priya;;;
FN:Priya Nkemelu
ORG:Ferngully Studio
TEL;TYPE=CELL:+61 401 222 333
EMAIL:[email protected]
END:VCARD
That is 156 bytes of ASCII. At the default level M (capacity 2,331) the status line reads “156 of 2,331 bytes used” — comfortably within range, so a scan drops all five fields straight into the phone’s contacts app.
Use cases & limitations
This suits printed and physical placements: table tents, event badges, packaging, a network code for house guests, a business card that adds itself. If your payload is a link, strip the tracking cruft with the URL cleaner first — a shorter URL means a less dense, more forgiving code — and consider a readable path from the slug generator for the destination. Exporting a large PNG for a flyer? Shrink it afterwards with the image compressor.
The honest limitation is density. A QR code is not a shortener: every extra byte adds modules, and a long URL at level H can print as a fine mesh that phones struggle to lock onto from a distance or in poor light. For big content, favour a short link and a lower error-correction level, or size the print up.
Privacy note
Wi-Fi passwords and contact details count as sensitive, so nothing you type leaves the browser. The encoder is a JavaScript file bundled with the page, and the code is drawn on a canvas locally — generating and downloading make no network requests, which you can confirm in your browser’s network tab. Once you close the tab, nothing you entered is kept. Do remember that the data is readable to anyone who scans the finished code: a Wi-Fi QR carries the password in plain text.