QuickUse Generator

QR Code Generator

Generate scannable QR codes for 9 payload types — links, Wi-Fi, vCards, Pix and more. Customize colors, export PNG/SVG, runs entirely in your browser.

0 characters

Customize colors
Good contrast(ratio 21.00:1)
  • Enter some text to generate a QR.
Fill in the form to generate the QR code.

Editorial guide

About this generator

An honest technical read on what is happening behind the Generate button.

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.

Frequently asked questions

How small can a printed QR code be before phones stop reading it?

For a phone held 20–30 cm away, modules below 0.5 mm get unreliable. Smaller prints (business cards, sticker labels) should use error-correction level Q or H so a misprint or smudge doesn’t kill the code.

Why do some QR codes fail to scan even though they look fine?

Usually one of three things: low contrast (printed on coloured paper, faded ink), too much shine (laminated menus reflecting overhead light back into the lens), or the payload was edited after generation — even one character changed without recomputing the QR breaks the Reed-Solomon block.

Is there a maximum length for the payload?

The format tops out at 4,296 alphanumeric chars (Version 40 at error level L), but anything past ~1,500 chars produces a grid so dense that phone cameras struggle. Shorten the URL or split the payload.

Can a QR code carry malware?

The QR itself is just text. The risk is what the text points to — a URL to a phishing site, a Wi-Fi handshake to a hostile access point, a vCard with an unexpected "exec-me-please" attachment. Treat QRs the same way you treat shortened URLs: trust the context, not the code.

What’s the difference between static and dynamic QR codes?

Static QRs encode the payload directly — what you see is what scans. Dynamic QRs encode a short URL that redirects through a server, letting the owner change the destination after printing. Dynamic codes are convenient and trackable; they’re also a privacy hole and aren’t supported here.

Why does the page validate by re-scanning my own QR?

A customised QR (colour, logo embed, corner styles) can quietly drop below the Reed-Solomon redundancy threshold and become unscannable. We render the PNG, run `jsQR` against it, and compare the decoded payload to the input. If they don’t match, the Download button is disabled with a clear error — better to fail loudly here than ship a poster nobody can scan.

Does the QR generation send my payload anywhere?

No. The QR encoder, the canvas render, the scan-back validation, and the file export all run in your browser. The network tab is silent when you click Generate. We don’t want to know what URL you’re encoding.