QR codes make it effortless to share a link, start a WhatsApp chat, or point someone to a form — no typing required, just a quick scan. But many QR generators bury the download button behind a sign-up form or a paid plan.
Here's how to create a QR code for a link, WhatsApp number, Google Form, or plain text, completely free and with no account.
QR codes work anywhere a quick scan is more convenient than typing a link, and they're increasingly common across print and packaging.
Link to your portfolio, LinkedIn or website.
Link to a product page, manual or video.
Direct customers straight to your offer.
Let customers message you with one scan.
URLs, text, email, phone and WhatsApp — fully customizable, no sign-up.
Create My QR Code →Copy the shareable link of your Google Form, paste it into the URL/Link tab, and the QR code updates instantly. This works well on printed posters, feedback cards, or event check-in sheets where scanning is faster than typing a long form URL.
If you need several QR codes — one per product, contact, or event station — you can create and download each one individually with its own size and color settings, repeating the process for every new link or contact you need to encode.
No. There's no account, no watermark, and no data collected — you fill in your details, and the PNG downloads directly to your device.
A QR code is a two-dimensional barcode holding text. When that text happens to start with https://, phone cameras offer to open it — but the code itself has no idea what a website is. It is a grid of black and white modules encoding characters, plus a substantial amount of redundancy so it still scans when part of it is damaged, dirty or obscured.
Two things follow from that. First, longer text means a denser grid: a 30-character link produces a code with large, forgiving modules, while a 300-character tracking URL produces a dense one that needs a better camera and a bigger print. Second, the content is fixed at the moment of generation. There is no server in between, so a static code cannot be edited later — if the destination changes, the printed code is dead.
Every QR code reserves part of its capacity for error correction, at one of four levels. This is why a code with a logo pasted in the middle still works.
| Level | Recoverable damage | Use it for |
|---|---|---|
| L (Low) | ~7% | Clean on-screen display, maximum data in the smallest grid |
| M (Medium) | ~15% | The sensible default for most printing |
| Q (Quartile) | ~25% | Codes with a small logo overlay |
| H (High) | ~30% | Packaging, outdoor signage, anything that will be scuffed or rained on |
Higher correction is not free — it makes the grid denser for the same text, so a code at level H must be printed larger than the same link at level M to stay scannable.
The workable guideline is that scanning distance should be roughly ten times the width of the code. A 2 cm code scans comfortably at about 20 cm — fine for a business card or a menu. A poster meant to be scanned from three metres away needs a code around 30 cm wide. Table tents, shelf labels and flyers usually want 2.5–4 cm.
Whatever the size, keep the quiet zone: a clear margin of at least four modules' width all the way round. Codes fail far more often because a designer cropped tight to the edge or placed text against the border than because the code itself was wrong.
Scanners look for dark modules on a light background. Dark-on-light with strong contrast is the only combination that is reliably safe. Light-on-dark inverted codes work on some readers and fail on others. Gradients reduce the contrast ratio unpredictably across the grid. Very light colours for the modules — pastel blues, mid greys, yellow — often fall below the threshold a camera needs, especially under warm indoor lighting or on uncoated paper where ink spreads.
If a code must be branded, change the background to a very pale tint and keep the modules near-black. That preserves contrast while still reading as brand colour.
https://wa.me/<country code and number, digits only>. Adding ?text= pre-fills the first message, which is useful for support queues.WIFI:T:WPA;S:NetworkName;P:Password;;. Excellent for guest networks and cafés — but remember it puts the password in plain text in the code.A dynamic QR code encodes a short redirector URL owned by a service. That lets you change the destination later and count scans, but it makes your printed material permanently dependent on that company staying in business and continuing to serve the redirect for free. Plenty of businesses have discovered that their menus stopped working when a trial ended.
A static code points straight at your destination and will keep working for as long as that URL exists. If you need to change destinations later, the safe pattern is to own the redirect yourself: encode a short URL on your own domain and change where it points whenever you like. You get the flexibility without the dependency.
The generator on this site builds the code locally with JavaScript. The text you type is never sent anywhere, and no record of what you encoded is kept. That matters more than it sounds for Wi-Fi codes containing passwords, vCards containing personal phone numbers, and internal links you would rather not hand to a marketing analytics company. You can verify it by opening the Network tab in developer tools while you generate, or by disconnecting from the internet after the page loads — the generator keeps working.
Use the ten-to-one rule: scanning distance is roughly ten times the code width. About 2 cm for a business card, 2.5-4 cm for a menu or flyer, and around 30 cm for a poster read from three metres. Always keep a clear quiet-zone margin of at least four modules around the edge.
The usual culprits are insufficient contrast, a missing quiet zone, printing too small for the viewing distance, a very long URL producing a dense grid, or an inverted light-on-dark design. Shorten the link, keep modules near-black on a light background, and test a print at final size before committing.
Not with a static code - the destination is baked into the pattern. To keep flexibility without depending on a third-party service, encode a short URL on your own domain and change where that redirects whenever you need to.
Medium is the sensible default. Choose Quartile if you are overlaying a logo, and High for packaging or outdoor signage that will get scuffed or wet. Higher levels make the grid denser, so print those slightly larger.
Encode https://wa.me/ followed by the full number in digits only, including the country code and no plus sign or spaces. Append ?text= with a pre-written message if you want the chat to open with the first message already filled in.
It stores the password as plain text, so anyone who scans it gets full network access. It is excellent for a guest network and a poor idea for your main one. Put guest devices on a separate SSID before printing the code.
No. The code is generated in your browser and the text you enter never leaves your device. Check the Network tab in developer tools while generating, or disconnect from the internet after the page loads - it still works.