QR codes went from gimmick to infrastructure faster than anyone predicted. Restaurant menus, payment rails, Wi-Fi onboarding, vaccine passports, parking meters, conference badges — the same 21-by-21 to 177-by-177 grid of black squares now sits behind transactions that move money and identity. The generator above produces all nine of the standard payload types in your browser, with the same wire formats every smartphone camera already knows how to read.
The nine payload types
Text is a raw string — useful for ticket IDs, asset tags, or anything that just needs to round-trip through a scan. URL is the marketing workhorse, with an optional UTM-builder so the same poster can attribute campaign conversions cleanly. Wi-Fi uses the ZXing-style WIFI:T:WPA;S:…;P:…;; format that iOS 11+ and Android 10+ honour natively from the camera app — scan, tap the notification, you're on. Email (RFC 2368 mailto), SMS (SMSTO scheme), and phone (RFC 3966 tel) cover the contact triad. vCard 3.0 (RFC 2426) is the electronic business card — name, organisation, role, channels — that conference badges have used since the late 90s. Geo (RFC 5870) drops a pin. And Pix is the BR-specific killer, covered separately below.
How a QR code actually works
The grid you see is not just data — it's data plus a substantial chunk of redundancy. Reed-Solomon error correction, the same family of codes that lets a scratched DVD play and a deep-space probe phone home, lets a partially obscured QR still decode. The standard defines four levels: L recovers 7% of damage, M 15%, Q 25%, H 30%. Higher recovery costs you capacity: a Version 10 grid at level M holds 395 alphanumeric characters; at level H, it drops to 213. The default in this generator is M — a good balance for screen and small-print use.
Capacity scales by version, where each version adds 4 modules per side. Version 1 is 21×21 and holds 25 alphanumeric chars at L. Version 40 is 177×177 and holds 4,296. The library picks the smallest version that fits your payload at the chosen error-correction level, which is why the same URL can render as a tight 33×33 grid or a sprawling 73×73 grid depending on how much redundancy you ask for.
The three big squares in the corners are the finder patterns — they tell the scanner where the code is and which way is up. The smaller squares scattered throughout larger codes are alignment patterns, used to correct for the perspective skew of a phone held at an angle. None of that is content; all of it is structure. The format was published by Denso Wave in 1994 and standardised as ISO/IEC 18004 in 2000.
Color customization without breaking the scan
Cameras read contrast, not colour. The WCAG 2.1 contrast formula compares relative luminance — black on white scores 21:1, the maximum. For QR scanning the practical floor is about 3:1; below that, autofocus and the camera's auto-exposure start fighting each other and the decoder gives up. This generator computes the WCAG ratio in real time and warns at 3:1, blocks the download at 2:1. The five presets all clear the threshold; the colour pickers let you go anywhere within reason. Dot-style and logo-embed customisation are deferred — they have legitimate uses but introduce a fragility surface that's hard to QA in a privacy-first, no-server-roundtrip context.
Why a client-side generator is the privacy bar
When you paste a URL into a hosted QR generator, you've handed that URL to a server. A legitimate operator logs it for abuse prevention; a less scrupulous one builds a side business out of the traffic patterns. The same is true of vCards (you've just leaked an executive's direct contact details), Wi-Fi codes (you've leaked the password), and Pix payment codes (you've leaked who's getting paid). This generator runs entirely in your browser. There are no fetch calls in the QR-generation path, no analytics events that capture the payload, and the QR library is loaded via dynamic import so even the round-trip to fetch its bytes happens from your browser cache once you've used it.
Print-poster use cases
The "Print poster" button opens a new window with the QR centred on A4 paper, sized for a comfortable scan distance of roughly 30–80 cm. Real-world places that benefit: restaurant tables (menu URL), conference badges (vCard), public Wi-Fi displays in cafés and Airbnb welcome books, museum exhibits, parking-lot payment posts, and event signage that needs to survive being printed once and read for a year. The minimum module size for a reliable phone scan is usually 0.5 mm; the poster sizing here clears that with a safety margin.

