DevKits
Concept

How to Create a QR Code — URL, Text, WiFi, vCard, and Custom Styles Online

Learn how to generate QR codes for URLs, text, WiFi credentials, vCard contacts, and more — with custom colors, error correction, and logo embedding. Everything runs client-side, no server needed.

Last updated:

Core Concepts

QR code basics: data, error correction, and size
A QR code encodes data as a 2D matrix of black and white modules. Four error correction levels exist: L (~7% recovery), M (~15%), Q (~25%), H (~30%). Higher error correction means more modules are redundant, allowing the QR to be read even when partially obscured or overlaid with a logo. The tradeoff: higher error correction = larger QR image.
What can you encode in a QR code?
URLs (most common — scan to open a website), plain text (short messages), WiFi credentials (SSID + password formatted as WIFI:T:WPA;S:MyNetwork;P:MyPassword;;), vCard contact info (name, phone, email), calendar events (VEVENT format), and Bitcoin/crypto wallet addresses. The maximum data capacity is 2,953 bytes for a Version 40 QR with L-level error correction.
Custom styling: colors, logos, and shapes
Modern QR readers work with arbitrary colors (not just black/white) as long as there's sufficient contrast. You can match the QR to your brand colors, embed a logo in the center (the error correction bytes handle the obscured area), and change module shapes from squares to rounded dots. Always test a customized QR on at least 3 different devices before printing — some readers are more tolerant than others.

Frequently Asked Questions

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

Static QR codes encode the data directly in the code — the data never changes. Dynamic QR codes encode a short redirect URL that you can change later — scan the same QR, get different content. Our generator creates static QRs (the data is encoded directly). For dynamic QRs, use a URL shortener and encode the shortener's URL.

How long does it take to generate a QR code?

Instant — QR encoding is a purely mathematical operation: take your data, apply Reed-Solomon error correction encoding, arrange into a matrix, render as PNG/SVG. Our generator runs entirely in the browser, with sub-100ms generation time for standard QRs.

Try these related tools