Skip to main content
FileForge

July 26, 2026

QR Codes Explained: How They Work and How to Make One for Free

QR codes went from a logistics-industry curiosity to something you scan at restaurant tables, on posters, on invoices and on product packaging. They look like random static, but every module in that grid has a job — and understanding a little of how they work explains why some codes scan instantly from across a room while others fail at point-blank range.

It also explains why you should be careful with 'free' QR generators that route your code through their own tracking domain — and how to make a code that is genuinely yours, forever, with no expiry and no watermark.

What's actually inside a QR code

A QR code stores plain data — most commonly a URL, but it can be any text: a Wi-Fi network name and password, a phone number, a calendar event or a contact card. The data is converted to bits and laid out in the grid alongside three unmistakable landmarks: the large squares in three corners. Those finder patterns are what let your camera locate and orient the code from any angle, which is why a QR code scans fine upside down.

The rest of the grid mixes your data with error-correction codes. QR uses Reed–Solomon error correction, which means a substantial part of the code can be dirty, damaged or covered — up to 30% at the highest correction level — and it will still scan. That redundancy is what makes it possible to put a logo in the middle of a QR code without breaking it.

Why some QR codes won't scan

Most scanning failures come down to a handful of causes. Too little contrast: the code needs to be clearly darker than its background — dark-on-light scans most reliably. Too small for the distance: a rough rule is that the code should be at least one tenth of the scanning distance across, so a poster meant to be scanned from a metre away needs a code at least 10 cm wide. Missing quiet zone: QR codes need a clear margin around them; cramming decoration right up to the edge confuses the finder patterns.

Data length matters too. The more characters you encode, the denser the grid becomes and the harder it is to scan from a distance or on cheap print. If your URL is long, encoding a shorter link keeps the code coarse and scannable.

Static codes, dynamic codes, and the expiry trap

A static QR code encodes your data directly — the URL itself lives inside the pattern. It works forever, needs no service behind it, and nobody can see who scanned it. A dynamic code instead encodes a short link on the generator company's domain, which then redirects to your real destination. That enables scan statistics and editing the destination later — but it also means your code silently depends on that company. If they shut down, change their pricing, or put your code behind a paywall, every printed copy stops working. Many 'free' QR services rely on exactly this: the code is free until it isn't.

For links you'll print — menus, posters, business cards, product packaging — a static code pointing directly at your own URL is the durable choice.

Making one in your browser

The QR Code Generator on this site creates static codes entirely on your device: type or paste the text or URL, and the code is generated locally by JavaScript — the content is never sent to a server, which matters if you're encoding something like a Wi-Fi password.

Download as PNG for direct use in documents and messages, or as SVG if the code will be printed: SVG is a vector format, so a print shop can scale it to a poster or a banner with perfectly sharp edges. There's no watermark, no account and no expiry — the code is a self-contained image that belongs to you.